aboutsummaryrefslogtreecommitdiffstats
path: root/epsdk-app-onap/src/main/java/org/onap/portalapp/conf/ExternalAppConfig.java
diff options
context:
space:
mode:
authorIttay Stern <ittay.stern@att.com>2019-08-25 13:02:27 +0300
committerIttay Stern <ittay.stern@att.com>2019-08-25 13:59:16 +0300
commit9c4a3a6d1ff8f6d91f32209bfdb59539bc20b743 (patch)
tree01da9e6134416c9979c17d854a053ae14ee1f9c2 /epsdk-app-onap/src/main/java/org/onap/portalapp/conf/ExternalAppConfig.java
parent87f850a6f3012aed165190bb861dcd0db8249dc6 (diff)
Allow plugging-in any provided LoginStrategy
Support dynamic loading of provided implementations of PORTAL SDK's  `org.onap.portalsdk.core.auth.LoginStrategy` interface. VID will load the class defined by `login.strategy.classname` configuration parameter. Default will keep current ONAP's dev login. Change-Id: I956a1f3376455211398769f3193703129b779871 Issue-ID: VID-594 Signed-off-by: Ittay Stern <ittay.stern@att.com>
Diffstat (limited to 'epsdk-app-onap/src/main/java/org/onap/portalapp/conf/ExternalAppConfig.java')
-rw-r--r--epsdk-app-onap/src/main/java/org/onap/portalapp/conf/ExternalAppConfig.java14
1 files changed, 12 insertions, 2 deletions
diff --git a/epsdk-app-onap/src/main/java/org/onap/portalapp/conf/ExternalAppConfig.java b/epsdk-app-onap/src/main/java/org/onap/portalapp/conf/ExternalAppConfig.java
index b4dcd346a..d9b0f092e 100644
--- a/epsdk-app-onap/src/main/java/org/onap/portalapp/conf/ExternalAppConfig.java
+++ b/epsdk-app-onap/src/main/java/org/onap/portalapp/conf/ExternalAppConfig.java
@@ -37,6 +37,8 @@
*/
package org.onap.portalapp.conf;
+import static org.apache.commons.lang3.StringUtils.isNotEmpty;
+
import java.util.ArrayList;
import java.util.List;
import javax.sql.DataSource;
@@ -50,6 +52,7 @@ import org.onap.portalsdk.core.objectcache.AbstractCacheManager;
import org.onap.portalsdk.core.service.DataAccessService;
import org.onap.portalsdk.core.util.CacheManager;
import org.onap.portalsdk.core.util.SystemProperties;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@@ -164,8 +167,15 @@ public class ExternalAppConfig extends AppConfig implements Configurable {
}
@Bean
- public LoginStrategy loginStrategy() {
- return new LoginStrategyImpl();
+ public LoginStrategy loginStrategy(@Value("${login.strategy.classname:}") String classname) throws ReflectiveOperationException {
+ return isNotEmpty(classname) ?
+ newLoginStrategyInstance(classname) : new LoginStrategyImpl();
+ }
+
+ private LoginStrategy newLoginStrategyInstance(String loginStrategyClassname) throws ReflectiveOperationException {
+ return (LoginStrategy) Class.forName(loginStrategyClassname)
+ .getConstructor()
+ .newInstance();
}
@Bean