diff options
author | sebdet <sebastien.determe@intl.att.com> | 2020-10-15 11:40:17 +0200 |
---|---|---|
committer | sebdet <sebastien.determe@intl.att.com> | 2020-10-15 13:07:49 +0200 |
commit | bf8f0ab08a7b2d60e2f6fd8c8f1e2203c3df97ea (patch) | |
tree | b05bdf52430483aa9e00b788ce93e8fb5314c245 /src/main/java/org/onap | |
parent | ac6b03b2c89bd0a9bab0e6512fe1d55d3c21be0b (diff) |
Fix creds issue with AAF
Fix the permissions not returned by AAF due to wrong code the clamp servlet.
Issue-ID: CLAMP-956
Signed-off-by: sebdet <sebastien.determe@intl.att.com>
Change-Id: I06fac82fb04421f154b67b625e910853ade8583f
Signed-off-by: sebdet <sebastien.determe@intl.att.com>
Diffstat (limited to 'src/main/java/org/onap')
-rw-r--r-- | src/main/java/org/onap/clamp/clds/ClampServlet.java | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/src/main/java/org/onap/clamp/clds/ClampServlet.java b/src/main/java/org/onap/clamp/clds/ClampServlet.java index 5908201fd..c19972791 100644 --- a/src/main/java/org/onap/clamp/clds/ClampServlet.java +++ b/src/main/java/org/onap/clamp/clds/ClampServlet.java @@ -28,9 +28,11 @@ package org.onap.clamp.clds; import com.att.eelf.configuration.EELFLogger; import com.att.eelf.configuration.EELFManager; +import fj.data.Array; import java.io.IOException; import java.security.Principal; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import javax.servlet.ServletException; @@ -69,16 +71,11 @@ public class ClampServlet extends CamelHttpTransportServlet { private static List<SecureServicePermission> permissionList; - private synchronized Class loadDynamicAuthenticationClass() { - try { - String authenticationObject = WebApplicationContextUtils.getWebApplicationContext(getServletContext()) - .getEnvironment().getProperty(AUTHENTICATION_CLASS); - return Class.forName(authenticationObject); - } catch (ClassNotFoundException e) { - logger.error( - "Exception caught when attempting to create associated class of config:" + AUTHENTICATION_CLASS, e); - return Object.class; - } + private synchronized String[] loadDynamicAuthenticationClasses() { + String[] authenticationObjects = WebApplicationContextUtils.getWebApplicationContext(getServletContext()) + .getEnvironment().getProperty(AUTHENTICATION_CLASS).split(","); + Arrays.stream(authenticationObjects).forEach(className -> className.trim()); + return authenticationObjects; } private synchronized List<SecureServicePermission> getPermissionList() { @@ -115,7 +112,8 @@ public class ClampServlet extends CamelHttpTransportServlet { @Override protected void doService(HttpServletRequest request, HttpServletResponse response) { Principal principal = request.getUserPrincipal(); - if (loadDynamicAuthenticationClass().isInstance(principal)) { + if (principal != null && Arrays.stream(loadDynamicAuthenticationClasses()) + .anyMatch(className -> className.equals(principal.getName()))) { // When AAF is enabled, there is a need to provision the permissions to Spring // system List<GrantedAuthority> grantedAuths = new ArrayList<>(); |