oauth client_credentials Optimize
This commit is contained in:
@@ -152,6 +152,7 @@ public class JdbcClientDetailsService implements ClientDetailsService, ClientReg
|
||||
if (count != 1) {
|
||||
throw new NoSuchClientException("No client found with id = " + clientDetails.getClientId());
|
||||
}
|
||||
clientDetailsCache.invalidate(clientDetails.getClientId());
|
||||
}
|
||||
|
||||
public void updateClientSecret(String clientId, String secret) throws NoSuchClientException {
|
||||
|
||||
@@ -155,14 +155,17 @@ public class TokenEndpointAuthenticationFilter implements Filter {
|
||||
try {
|
||||
String grantType = request.getParameter(OAuth2Constants.PARAMETER.GRANT_TYPE);
|
||||
if (grantType != null && grantType.equals(OAuth2Constants.PARAMETER.GRANT_TYPE_PASSWORD)) {
|
||||
//password
|
||||
usernamepassword(request,response);
|
||||
}else {
|
||||
Authentication authentication=ClientCredentials(request,response);
|
||||
logger.trace("getPrincipal " + authentication.getPrincipal().getClass());
|
||||
SigninPrincipal auth = null;
|
||||
if(authentication.getPrincipal() instanceof SigninPrincipal) {
|
||||
//authorization_code
|
||||
auth = (SigninPrincipal)authentication.getPrincipal();
|
||||
}else {
|
||||
//client_credentials
|
||||
auth =new SigninPrincipal((User)authentication.getPrincipal());
|
||||
}
|
||||
auth.setAuthenticated(true);
|
||||
@@ -242,7 +245,7 @@ public class TokenEndpointAuthenticationFilter implements Filter {
|
||||
public Authentication ClientCredentials(HttpServletRequest request, HttpServletResponse response)
|
||||
throws AuthenticationException, IOException, ServletException {
|
||||
if (allowOnlyPost && !"POST".equalsIgnoreCase(request.getMethod())) {
|
||||
throw new HttpRequestMethodNotSupportedException(request.getMethod(), new String[] { "POST" });
|
||||
throw new HttpRequestMethodNotSupportedException(request.getMethod(), new String[] { "POST","G" });
|
||||
}
|
||||
|
||||
String clientId = request.getParameter(OAuth2Constants.PARAMETER.CLIENT_ID);
|
||||
|
||||
@@ -17,6 +17,7 @@ import java.util.LinkedHashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.maxkey.authz.oauth2.common.OAuth2Constants;
|
||||
import org.maxkey.authz.oauth2.common.exceptions.InvalidClientException;
|
||||
import org.maxkey.authz.oauth2.common.util.OAuth2Utils;
|
||||
@@ -109,6 +110,10 @@ public class DefaultOAuth2RequestFactory implements OAuth2RequestFactory {
|
||||
}
|
||||
}
|
||||
String grantType = requestParameters.get(OAuth2Constants.PARAMETER.GRANT_TYPE);
|
||||
if(StringUtils.isBlank(grantType)) {
|
||||
//default client_credentials
|
||||
grantType = OAuth2Constants.PARAMETER.GRANT_TYPE_CLIENT_CREDENTIALS;
|
||||
}
|
||||
|
||||
Set<String> scopes = extractScopes(requestParameters, clientId);
|
||||
TokenRequest tokenRequest = new TokenRequest(requestParameters, clientId, scopes, grantType);
|
||||
|
||||
Reference in New Issue
Block a user