Springboot integration with AAF
[ccsdk/sli/core.git] / sliapi / springboot / src / main / java / org / onap / ccsdk / sli / core / sliapi / springboot / App.java
index ed3ee04..2892430 100644 (file)
@@ -24,6 +24,13 @@ import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;\r
 import org.springframework.context.annotation.ComponentScan;\r
 import springfox.documentation.swagger2.annotations.EnableSwagger2;\r
+import org.apache.shiro.realm.Realm;\r
+import org.apache.shiro.realm.text.PropertiesRealm;\r
+import org.apache.shiro.realm.text.TextConfigurationRealm;\r
+import org.apache.shiro.spring.web.config.DefaultShiroFilterChainDefinition;\r
+import org.apache.shiro.spring.web.config.ShiroFilterChainDefinition;\r
+import org.springframework.context.annotation.Bean;\r
+import org.onap.aaf.cadi.shiro.AAFRealm;\r
 \r
 @SpringBootApplication\r
 @EnableSwagger2\r
@@ -34,4 +41,34 @@ public class App {
   public static void main(String[] args) throws Exception {\r
     SpringApplication.run(App.class, args);\r
   }\r
+\r
+  @Bean\r
+  public Realm realm() {\r
+\r
+    // If cadi prop files is not defined use local properties realm\r
+    // src/main/resources/shiro-users.properties\r
+    if ("none".equals(System.getProperty("cadi_prop_files", "none"))) {\r
+      PropertiesRealm realm = new PropertiesRealm();\r
+      return realm;\r
+    } else {\r
+      AAFRealm realm = new AAFRealm();\r
+      return realm;\r
+    }\r
+\r
+  }\r
+\r
+  @Bean\r
+  public ShiroFilterChainDefinition shiroFilterChainDefinition() {\r
+    DefaultShiroFilterChainDefinition chainDefinition = new DefaultShiroFilterChainDefinition();\r
+\r
+    // if cadi prop files is not set disable authentication\r
+    if ("none".equals(System.getProperty("cadi_prop_files", "none"))) {\r
+      chainDefinition.addPathDefinition("/**", "anon");\r
+    } else {\r
+      chainDefinition.addPathDefinition("/**", "authcBasic, rest[org.onap.sdnc:odl-api]");\r
+    }\r
+\r
+    return chainDefinition;\r
+  }\r
+\r
 }\r