diff options
author | 2018-05-08 12:01:21 +0100 | |
---|---|---|
committer | 2018-05-08 12:01:21 +0100 | |
commit | ee07ee287cab944dfc7371b3eeb230d1ba7e736e (patch) | |
tree | add8f7a8546d31fa17b663defb3b6c7259db1760 /src/main/java/org | |
parent | 4229965d8a112a9311505224e2bae254d25710dc (diff) |
Fix Babel authorisation mechanismv1.2.02.0.0-ONAPbeijing2.0.0-ONAP
Change-Id: Iae3139b33e315fae0c205fd7e0df67554d91cd5b
Issue-ID: AAI-1126
Signed-off-by: Lee, Tian (tl5884) <TianL@amdocs.com>
Diffstat (limited to 'src/main/java/org')
3 files changed, 13 insertions, 31 deletions
diff --git a/src/main/java/org/onap/aai/auth/AAIMicroServiceAuth.java b/src/main/java/org/onap/aai/auth/AAIMicroServiceAuth.java index 67eee9a..0412c1a 100644 --- a/src/main/java/org/onap/aai/auth/AAIMicroServiceAuth.java +++ b/src/main/java/org/onap/aai/auth/AAIMicroServiceAuth.java @@ -51,30 +51,6 @@ public class AAIMicroServiceAuth { } /** - * @param username - * @param policyFunction - * @return - * @throws AAIAuthException - */ - public boolean authorize(String username, String policyFunction) throws AAIAuthException { - return AAIMicroServiceAuthCore.authorize(username, policyFunction); - } - - /** - * @param authUser - * @param policyFunction - * @return - * @throws AAIAuthException - */ - public String authenticate(String authUser, String policyFunction) throws AAIAuthException { - if (authorize(authUser, policyFunction)) { - return "OK"; - } else { - return "AAI_9101"; - } - } - - /** * @param headers * @param req * @param action @@ -94,11 +70,7 @@ public class AAIMicroServiceAuth { } String[] ps = apiPath.split("/"); - String authPolicyFunctionName = ps[0]; - if (ps.length > 1 && authPolicyFunctionName.matches("v\\d+")) { - authPolicyFunctionName = ps[1]; - } - + String authPolicyFunctionName = ps[ps.length - 1]; String cipherSuite = (String) req.getAttribute("javax.servlet.request.cipher_suite"); String authUser = null; @@ -110,7 +82,8 @@ public class AAIMicroServiceAuth { } if (authUser != null) { - return "OK".equals(authenticate(authUser.toLowerCase(), action.toString() + ":" + authPolicyFunctionName)); + return AAIMicroServiceAuthCore.authorize(authUser.toLowerCase(), + action.toString() + ":" + authPolicyFunctionName); } else { return false; } diff --git a/src/main/java/org/onap/aai/babel/service/GenerateArtifactsServiceImpl.java b/src/main/java/org/onap/aai/babel/service/GenerateArtifactsServiceImpl.java index 17d0b65..532d8c7 100644 --- a/src/main/java/org/onap/aai/babel/service/GenerateArtifactsServiceImpl.java +++ b/src/main/java/org/onap/aai/babel/service/GenerateArtifactsServiceImpl.java @@ -30,6 +30,7 @@ import javax.inject.Inject; import javax.servlet.http.HttpServletRequest; import javax.ws.rs.core.HttpHeaders; import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.PathSegment; import javax.ws.rs.core.Response; import javax.ws.rs.core.Response.Status; import javax.ws.rs.core.UriInfo; @@ -49,8 +50,10 @@ import org.onap.aai.babel.service.data.BabelArtifact; import org.onap.aai.babel.service.data.BabelRequest; import org.onap.aai.babel.util.RequestValidationException; import org.onap.aai.babel.util.RequestValidator; +import org.springframework.stereotype.Service; /** Generate SDC Artifacts by passing in a CSAR payload, Artifact Name and Artifact version */ +@Service public class GenerateArtifactsServiceImpl implements GenerateArtifactsService { private static final LogHelper applicationLogger = LogHelper.INSTANCE; @@ -96,8 +99,12 @@ public class GenerateArtifactsServiceImpl implements GenerateArtifactsService { Response response; try { + // Get last URI path segment to use for authentication + List<PathSegment> pathSegments = uriInfo.getPathSegments(); + String lastPathSegment = pathSegments.isEmpty() ? "" : pathSegments.get(pathSegments.size() - 1).getPath(); + boolean authorized = aaiMicroServiceAuth.validateRequest(headers, servletRequest, - AAIMicroServiceAuthCore.HTTP_METHODS.POST, uriInfo.getPath(false)); + AAIMicroServiceAuthCore.HTTP_METHODS.POST, lastPathSegment); response = authorized ? generateArtifacts(requestBody) : buildResponse(Status.UNAUTHORIZED, "User not authorized to perform the operation."); diff --git a/src/main/java/org/onap/aai/babel/service/InfoService.java b/src/main/java/org/onap/aai/babel/service/InfoService.java index c993746..e115568 100644 --- a/src/main/java/org/onap/aai/babel/service/InfoService.java +++ b/src/main/java/org/onap/aai/babel/service/InfoService.java @@ -31,6 +31,7 @@ import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; +import org.springframework.stereotype.Service; /** * Information service for the micro-service. Return status details to the caller. @@ -38,6 +39,7 @@ import javax.ws.rs.QueryParam; * @exclude */ @Path("/core/core-service") +@Service public class InfoService { private Clock clock = Clock.systemDefaultZone(); |