aboutsummaryrefslogtreecommitdiffstats
path: root/ECOMP-PDP-REST/src/main/java/org/openecomp/policy/pdp/rest/restAuth/PDPAuthenticationFilter.java
diff options
context:
space:
mode:
authorITSERVICES\rb7147 <rb7147@att.com>2017-04-25 11:46:00 -0400
committerITSERVICES\rb7147 <rb7147@att.com>2017-05-03 09:58:17 -0400
commite0addf5b588a1244f9679becd90999dfcb4c3a94 (patch)
tree1212772d6366730266ff0e093c874b07aa716c29 /ECOMP-PDP-REST/src/main/java/org/openecomp/policy/pdp/rest/restAuth/PDPAuthenticationFilter.java
parent39fb0f30472777e4b60d6a7ac8aa4eb9773961ff (diff)
Policy 1707 commit to LF
Change-Id: Ibe6f01d92f9a434c040abb05d5386e89d675ae65 Signed-off-by: ITSERVICES\rb7147 <rb7147@att.com>
Diffstat (limited to 'ECOMP-PDP-REST/src/main/java/org/openecomp/policy/pdp/rest/restAuth/PDPAuthenticationFilter.java')
-rw-r--r--ECOMP-PDP-REST/src/main/java/org/openecomp/policy/pdp/rest/restAuth/PDPAuthenticationFilter.java45
1 files changed, 42 insertions, 3 deletions
diff --git a/ECOMP-PDP-REST/src/main/java/org/openecomp/policy/pdp/rest/restAuth/PDPAuthenticationFilter.java b/ECOMP-PDP-REST/src/main/java/org/openecomp/policy/pdp/rest/restAuth/PDPAuthenticationFilter.java
index b3b931eaa..4bc14df02 100644
--- a/ECOMP-PDP-REST/src/main/java/org/openecomp/policy/pdp/rest/restAuth/PDPAuthenticationFilter.java
+++ b/ECOMP-PDP-REST/src/main/java/org/openecomp/policy/pdp/rest/restAuth/PDPAuthenticationFilter.java
@@ -32,7 +32,7 @@ import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import org.openecomp.policy.pdp.rest.restAuth.AuthenticationService;
+import org.openecomp.policy.pdp.rest.config.PDPApiAuth;
/**
* Servlet Filter implementation class PDPAuthenticationFilter
@@ -41,12 +41,14 @@ import org.openecomp.policy.pdp.rest.restAuth.AuthenticationService;
public class PDPAuthenticationFilter implements Filter {
public static final String AUTHENTICATION_HEADER = "Authorization";
+ public static final String ENVIRONMENT_HEADER = "Environment";
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filter) throws IOException, ServletException {
if (request instanceof HttpServletRequest) {
HttpServletRequest httpServletRequest = (HttpServletRequest) request;
+ String environment = httpServletRequest.getHeader(ENVIRONMENT_HEADER);
String authCredentials = httpServletRequest.getHeader(AUTHENTICATION_HEADER);
String path = ((HttpServletRequest) request).getRequestURI();
// better injected
@@ -55,8 +57,35 @@ public class PDPAuthenticationFilter implements Filter {
boolean authenticationStatus = authenticationService.authenticate(authCredentials);
if (authenticationStatus) {
- filter.doFilter(request, response);
- } else if(path.contains("notifications")){
+ if (check(path)) {
+ // New API request.
+ path = path.substring(path.substring(1).indexOf("/") + 1);
+ if (environment == null) {
+ // Allow Old clients.
+ if(!path.contains("/api/")){
+ request.getRequestDispatcher("/api/" + path).forward(request,response);
+ }else{
+ request.getRequestDispatcher(path).forward(request,response);
+ }
+ } else if (environment.equalsIgnoreCase(PDPApiAuth.getEnvironment())) {
+ // Validated new Clients.
+ if(!path.contains("/api/")){
+ request.getRequestDispatcher("/api/" + path).forward(request,response);
+ }else{
+ request.getRequestDispatcher(path).forward(request,response);
+ }
+ } else if(response instanceof HttpServletResponse) {
+ HttpServletResponse httpServletResponse = (HttpServletResponse) response;
+ httpServletResponse.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
+ }
+ } else {
+ filter.doFilter(request, response);
+ }
+ } else if (path.contains("swagger") || path.contains("api-docs")
+ || path.contains("configuration") || path.contains("count")) {
+ path = path.substring(path.substring(1).indexOf("/") + 2);
+ request.getRequestDispatcher("/api/" + path).forward(request,response);
+ } else if(path.contains("notifications")){
filter.doFilter(request, response);
} else {
if (response instanceof HttpServletResponse) {
@@ -66,13 +95,23 @@ public class PDPAuthenticationFilter implements Filter {
}
}
}
+
+ private boolean check(String path) {
+ if(path.endsWith("/pdp/")|| path.endsWith("/pdp")|| path.endsWith("/test")){
+ return false;
+ }else{
+ return true;
+ }
+ }
@Override
public void destroy() {
+ // Do nothing.
}
@Override
public void init(FilterConfig arg0) throws ServletException {
+ // Do nothing.
}
}