aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/org
diff options
context:
space:
mode:
authorLee, Tian (tl5884) <TianL@amdocs.com>2018-05-08 12:01:21 +0100
committerLee, Tian (tl5884) <TianL@amdocs.com>2018-05-08 12:01:21 +0100
commitee07ee287cab944dfc7371b3eeb230d1ba7e736e (patch)
treeadd8f7a8546d31fa17b663defb3b6c7259db1760 /src/main/java/org
parent4229965d8a112a9311505224e2bae254d25710dc (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')
-rw-r--r--src/main/java/org/onap/aai/auth/AAIMicroServiceAuth.java33
-rw-r--r--src/main/java/org/onap/aai/babel/service/GenerateArtifactsServiceImpl.java9
-rw-r--r--src/main/java/org/onap/aai/babel/service/InfoService.java2
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();