Răsfoiți Sursa

Update TokenEndpointAuthenticationFilter.java

MaxKey 4 ani în urmă
părinte
comite
642c02ad62

+ 25 - 10
maxkey-protocols/maxkey-protocol-oauth-2.0/src/main/java/org/maxkey/authz/oauth2/provider/endpoint/TokenEndpointAuthenticationFilter.java

@@ -133,13 +133,37 @@ public class TokenEndpointAuthenticationFilter implements Filter {
 		final HttpServletRequest request = (HttpServletRequest) req;
 		final HttpServletResponse response = (HttpServletResponse) res;
 
+		if(logger.isTraceEnabled()) {
+			logger.trace("getRequestURL : "+request.getRequestURL());
+			logger.trace("getMethod : "+request.getMethod());
+	        Enumeration<String> headerNames = request.getHeaderNames();
+	        while (headerNames.hasMoreElements()) {
+	          String key = (String) headerNames.nextElement();
+	          String value = request.getHeader(key);
+	          logger.trace("Header key "+key +" , value " + value);
+	        }
+	        
+	        Enumeration<String> parameterNames = request.getParameterNames();
+	        while (parameterNames.hasMoreElements()) {
+	          String key = (String) parameterNames.nextElement();
+	          String value = request.getParameter(key);
+	          logger.trace("Parameter "+key +" , value " + value);
+	        }
+		}
+		
 		try {
 			String grantType = request.getParameter("grant_type");
 			if (grantType != null && grantType.equals("password")) {
 				usernamepassword(request,response);
 			}else {
 				Authentication authentication=ClientCredentials(request,response);
-				SigninPrincipal auth =new SigninPrincipal((User)authentication.getPrincipal());
+				logger.trace("getPrincipal " + authentication.getPrincipal().getClass());
+				SigninPrincipal auth = null;
+				if(authentication.getPrincipal() instanceof SigninPrincipal) {
+					auth = (SigninPrincipal)authentication.getPrincipal();
+				}else {
+					auth =new SigninPrincipal((User)authentication.getPrincipal());
+				}
 				auth.setAuthenticated(true);
 				UsernamePasswordAuthenticationToken simpleUserAuthentication = new UsernamePasswordAuthenticationToken(auth, authentication.getCredentials(), authentication.getAuthorities());
 				WebContext.setAuthentication(simpleUserAuthentication);
@@ -223,15 +247,6 @@ public class TokenEndpointAuthenticationFilter implements Filter {
 			String clientId = request.getParameter("client_id");
 			String clientSecret = request.getParameter("client_secret");
 			if(clientId == null) {
-				if(logger.isTraceEnabled()) {
-					logger.trace("getRequestURL : "+request.getRequestURL());
-			        Enumeration<String> headerNames = request.getHeaderNames();
-			        while (headerNames.hasMoreElements()) {
-			          String key = (String) headerNames.nextElement();
-			          String value = request.getHeader(key);
-			          logger.trace("Header key "+key +" , value " + value);
-			        }
-				}
 				//for header authorization basic
 				String authorization_bearer =request.getHeader("authorization");
 				AuthorizationHeaderCredential ahc=AuthorizationHeaderUtils.resolve(authorization_bearer);