diff options
author | 2021-04-20 11:59:06 -0400 | |
---|---|---|
committer | 2021-06-23 11:39:02 -0400 | |
commit | 2d222f259c73436d751e087d5df02e5236294f4d (patch) | |
tree | 15eade381f15fe9b85d8980860ab0058d535429d /ms | |
parent | d70bd72e226b3921d15195b3c123115d14e3d5d1 (diff) |
Use CadiFilter instead of shiro
Microservices should use CadiFilter rather than shiro to integrate
with AAF
Change-Id: I95b9a844b7ac868f864134de7345013001357352
Issue-ID: SDNC-1523
Signed-off-by: Dan Timoney <dtimoney@att.com>
(cherry picked from commit a90eecf70419ec4acba6f5a8425300eef7f45290)
Diffstat (limited to 'ms')
-rw-r--r-- | ms/sliboot/pom.xml | 47 | ||||
-rw-r--r-- | ms/sliboot/src/main/java/org/onap/ccsdk/apps/ms/sliboot/SlibootApp.java | 52 | ||||
-rw-r--r-- | ms/sliboot/src/test/java/org/onap/ccsdk/apps/ms/sliboot/AppTest.java | 39 |
3 files changed, 53 insertions, 85 deletions
diff --git a/ms/sliboot/pom.xml b/ms/sliboot/pom.xml index 7ae99ae4..afbc5c14 100644 --- a/ms/sliboot/pom.xml +++ b/ms/sliboot/pom.xml @@ -18,8 +18,7 @@ <properties> <start-class>org.onap.ccsdk.apps.ms.sliboot.SlibootApp</start-class> - <shiro.version>1.5.0</shiro.version> - <aaf-shiro-bundle.version>2.1.13</aaf-shiro-bundle.version> + <aaf.cadi.version>2.1.21</aaf.cadi.version> <base.image.name>onap/ccsdk-alpine-j11-image</base.image.name> <base.image.version>1.1.1</base.image.version> <image.name>onap/ccsdk-sliboot-alpine-image</image.name> @@ -40,17 +39,16 @@ <groupId>io.swagger</groupId> <artifactId>swagger-annotations</artifactId> </dependency> - <dependency> - <groupId>org.apache.shiro</groupId> - <artifactId>shiro-spring-boot-web-starter</artifactId> - <version>${shiro.version}</version> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> - </dependency> + </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> @@ -60,12 +58,6 @@ <artifactId>spring-boot-starter-validation</artifactId> </dependency> <dependency> - <groupId>org.onap.aaf.cadi</groupId> - <artifactId>aaf-cadi-shiro</artifactId> - <version>${aaf-shiro-bundle.version}</version> - </dependency> - - <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> @@ -85,6 +77,34 @@ <version>2.9.2</version> </dependency> <dependency> + <groupId>org.onap.aaf.authz</groupId> + <artifactId>aaf-cadi-client</artifactId> + <version>${aaf.cadi.version}</version> + </dependency> + <dependency> + <groupId>org.onap.aaf.authz</groupId> + <artifactId>aaf-cadi-core</artifactId> + <version>${aaf.cadi.version}</version> + </dependency> + <dependency> + <groupId>org.onap.aaf.authz</groupId> + <artifactId>aaf-auth-client</artifactId> + <version>${aaf.cadi.version}</version> + <scope>runtime</scope> + </dependency> + <dependency> + <groupId>org.onap.aaf.authz</groupId> + <artifactId>aaf-misc-env</artifactId> + <version>${aaf.cadi.version}</version> + <scope>runtime</scope> + </dependency> + <dependency> + <groupId>org.onap.aaf.authz</groupId> + <artifactId>aaf-misc-rosetta</artifactId> + <version>${aaf.cadi.version}</version> + <scope>runtime</scope> + </dependency> + <dependency> <groupId>${project.groupId}</groupId> <artifactId>services</artifactId> <version>${project.version}</version> @@ -283,7 +303,6 @@ <artifactId>maven-surefire-plugin</artifactId> <version>2.19.1</version> <configuration> - <forkMode>always</forkMode> <environmentVariables> <SDNC_CONFIG_DIR>${basedir}/src/test/resources</SDNC_CONFIG_DIR> <SVCLOGIC_PROPERTIES>${basedir}/src/test/resources/svclogic.properties</SVCLOGIC_PROPERTIES> diff --git a/ms/sliboot/src/main/java/org/onap/ccsdk/apps/ms/sliboot/SlibootApp.java b/ms/sliboot/src/main/java/org/onap/ccsdk/apps/ms/sliboot/SlibootApp.java index 9805d004..5921ad8a 100644 --- a/ms/sliboot/src/main/java/org/onap/ccsdk/apps/ms/sliboot/SlibootApp.java +++ b/ms/sliboot/src/main/java/org/onap/ccsdk/apps/ms/sliboot/SlibootApp.java @@ -24,18 +24,18 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.autoconfigure.domain.EntityScan;
+import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.ComponentScan;
+import org.springframework.core.annotation.Order;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
-import org.apache.shiro.realm.Realm;
-import org.apache.shiro.realm.text.PropertiesRealm;
-import org.apache.shiro.spring.web.config.DefaultShiroFilterChainDefinition;
-import org.apache.shiro.spring.web.config.ShiroFilterChainDefinition;
import org.springframework.context.annotation.Bean;
-import org.onap.aaf.cadi.shiro.AAFRealm;
+
+import org.onap.aaf.cadi.filter.CadiFilter;
@SpringBootApplication(scanBasePackages={ "org.onap.ccsdk.apps.ms.sliboot.*", "org.onap.ccsdk.apps.services" })
@EnableJpaRepositories("org.onap.ccsdk.apps.ms.sliboot.*")
@@ -51,34 +51,22 @@ public class SlibootApp { }
@Bean
- public Realm realm() {
-
- // If cadi prop files is not defined use local properties realm
- // src/main/resources/shiro-users.properties
- if ("none".equals(System.getProperty("cadi_prop_files", "none"))) {
- log.info("cadi_prop_files undefined, AAF Realm will not be set");
- PropertiesRealm realm = new PropertiesRealm();
- return realm;
- } else {
- AAFRealm realm = new AAFRealm();
- return realm;
- }
+ @ConditionalOnProperty("cadi.properties.path")
+ @Order(1)
+ public FilterRegistrationBean<CadiFilter> cadiFilter() {
+ CadiFilter filter = new CadiFilter();
- }
+ FilterRegistrationBean<CadiFilter> registrationBean = new FilterRegistrationBean<>();
+ registrationBean.setFilter(filter);
+ if ("none".equals(System.getProperty("cadi_prop_files", "none"))) {
+ log.info("cadi_prop_files undefined, AAF CADI disabled");
+ registrationBean.addUrlPatterns("/xxxx/*");
+ } else {
+ registrationBean.addUrlPatterns("/*");
+ registrationBean.addInitParameter("cadi_prop_files", System.getProperty("cadi_prop_files"));
+ }
- @Bean
- public ShiroFilterChainDefinition shiroFilterChainDefinition() {
- DefaultShiroFilterChainDefinition chainDefinition = new DefaultShiroFilterChainDefinition();
-
- // if cadi prop files is not set disable authentication
- if ("none".equals(System.getProperty("cadi_prop_files", "none"))) {
- chainDefinition.addPathDefinition("/**", "anon");
- } else {
- log.info("Loaded property cadi_prop_files, AAF REALM set");
- chainDefinition.addPathDefinition("/**", "authcBasic, rest[org.onap.sdnc.odl:odl-api]");
- }
-
- return chainDefinition;
- }
+ return registrationBean;
+ }
}
diff --git a/ms/sliboot/src/test/java/org/onap/ccsdk/apps/ms/sliboot/AppTest.java b/ms/sliboot/src/test/java/org/onap/ccsdk/apps/ms/sliboot/AppTest.java deleted file mode 100644 index 570953e4..00000000 --- a/ms/sliboot/src/test/java/org/onap/ccsdk/apps/ms/sliboot/AppTest.java +++ /dev/null @@ -1,39 +0,0 @@ -package org.onap.ccsdk.apps.ms.sliboot; - -import org.apache.shiro.realm.Realm; -import org.apache.shiro.realm.text.PropertiesRealm; -import org.apache.shiro.spring.web.config.ShiroFilterChainDefinition; -import org.junit.Before; -import org.junit.Test; - -import java.util.Map; - -import static org.junit.Assert.*; - -public class AppTest { - - SlibootApp app; - - @Before - public void setUp() throws Exception { - app = new SlibootApp(); - System.setProperty("serviceLogicProperties", "src/test/resources/svclogic.properties"); - } - - @Test - public void realm() { - Realm realm = app.realm(); - assertTrue(realm instanceof PropertiesRealm); - - - } - - @Test - public void shiroFilterChainDefinition() { - ShiroFilterChainDefinition chainDefinition = app.shiroFilterChainDefinition(); - Map<String, String> chainMap = chainDefinition.getFilterChainMap(); - assertEquals("anon", chainMap.get("/**")); - - - } -}
\ No newline at end of file |