From 4157302d22f65e3ce1f4ba4635fa9f4c742ece31 Mon Sep 17 00:00:00 2001 From: MaxKey Date: Sat, 24 Apr 2021 09:11:26 +0800 Subject: [PATCH] APPROVAL_PROMPT --- maxkey-lib/mybatis-jpa-extra-2.3.jar | Bin 78778 -> 79049 bytes ...atis-jpa-extra-spring-boot-starter-2.3.jar | Bin 20010 -> 20012 bytes .../authz/oauth2/common/OAuth2Constants.java | 14 +++++ .../OAuth20AccessConfirmationEndpoint.java} | 24 +++++--- .../OAuth20UserApprovalHandler.java | 2 +- .../endpoint/AuthorizationEndpoint.java | 53 ++++++++---------- .../provider/endpoint/CheckTokenEndpoint.java | 2 +- .../provider/endpoint/TokenEndpoint.java | 9 +-- .../TokenEndpointAuthenticationFilter.java | 20 +++---- .../token/DefaultAccessTokenConverter.java | 4 ++ .../Oauth20AutoConfiguration.java | 2 +- 11 files changed, 74 insertions(+), 56 deletions(-) rename maxkey-protocols/maxkey-protocol-oauth-2.0/src/main/java/org/maxkey/authz/oauth2/provider/approval/{controller/OAuth20AccessConfirmationController.java => endpoint/OAuth20AccessConfirmationEndpoint.java} (90%) rename maxkey-protocols/maxkey-protocol-oauth-2.0/src/main/java/org/maxkey/authz/oauth2/provider/approval/{controller => endpoint}/OAuth20UserApprovalHandler.java (98%) diff --git a/maxkey-lib/mybatis-jpa-extra-2.3.jar b/maxkey-lib/mybatis-jpa-extra-2.3.jar index 7d7ec20c4a7ebf2d779ec2393141f256319233fa..f4c966045bfd200ac0696a14e30571647fa316f5 100644 GIT binary patch delta 70599 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 J6gXXw{{l2Ex6J?m diff --git a/maxkey-lib/mybatis-jpa-extra-spring-boot-starter-2.3.jar b/maxkey-lib/mybatis-jpa-extra-spring-boot-starter-2.3.jar index 6a0b4825ab3919e34597bae815f10f507c152327..8148d82c287966ad9f46019b5bcbc6b3f44e6899 100644 GIT binary patch delta 879 zcmZ2AhjGmuM&1B#W)?065U}u^F_Bk=*&Ilj%woRPF@54iEim=Z21HG^WlU1N*)cr` ztQbnL0O|aqbbW*=KoygZFsdmYi`>}ZKi_Ej(G_Z~sX`mp8_YZ_KkLw{d(Cri zWJZ=uJMQ^t=G=FSe!tWYvv6N?ZMKx*{F>*2Kg-Y7xc~G$(J7-`wtd<1&6es$HK7X` zPd`zy+p?@P&^Jsd^=I*?xmIyDk=d$sOJ9AE*YBS9!M(_83SWP0#HYuh)^(cQ)-eBb zFo3+Zx!)m%860M_IcI`tbFTHE5ZL^ZOP3MMkmUKy0cP-viZFv2Y7+m%zzlVLHZBlj zvVrAcu)sIV$6U<7*qMCC#RL>RlZ9RF!KQ|~g2Qw2Bv&6W|DkIUSYw!*KA7%sGXv8H z-R!_Lle-g`c6avztDoYYh!hR~+^d*@uAf}(AtZe zm_-z-*lRMkHxJliDQ{^eX$h#X#N+~R1I90t7kbBnB^iCBnPl`Kl0M4vAj99zl~gDP z8rlKGhA4)sPHyyZ0ILa&ICRQ`je%h~9|MCCikjCzHA<7!tb`|*c?(Qd^_605p6uXT V&GgtA7=XT$x%{Nq&bxqg007fwH(US! delta 940 zcmZ28hjG;$M&1B#W)?065ZJL~>O@`@=IubrWEL~$z9|zgYJsVLHXv%UEn|`@$G#~+ zV8u{^1xV)?rRyV10jijMgi(zdM89R!1JiO$MqoOa$qHoB<_S#YOq@VQP^5v|mwl53 zSd;3{avd@dXnEhd?{L%e4mUx~3IS2g72>wi_w7iC|)o$*CSBy`{op3ahN&hQ&X4`JJ({;11 zOxiW??!=N9%fIjZ(`G0>`+QW)P{t=$;N@nuygvVf+TOk$Ul(V*Q0R-}+~ppoJB?#r z?^>6KF(QgueMjQe%~vfuIe%-{-J{Qc$J_Wy9h%~GeA|}VH(oMv>rcH?@SO+qJqH8G zQ=2C`#4v+HY%b?aFm1`T9_0Vcueo#?nJbn|-7L-XnFGua6cu3xGc+Xri7}Thnz~t2 zpN&fp6wGhuN-C5CgSP{S4JRiuDNSDLBQ&|hvXQw8sO*R3V=iW3j7`4hVgib?$)c|I zV7tOy!C^dkimMNp|Jbz%9QF}z`e3@t%?wN*cC!Q1EbdNV+SA<&tbUq%A|h%gc~pS~ zYdxfy^w=hEbXA_5&!#*1l?M-4_$N@fk8^UYr!;?nHzSh>GbkZ}17Wg*r!=G1rT|DUX=Iwb(5nIzh?8Z!rI{opz}9&4NK7t}V4KYA%`>^hTaM|I zCRq5Wx3vN=l!Kl;eCWKDlYxOxmVvu);`v@yQWBJPH^wfudO15~$c%2iZTs z$O#IKICRQ`je%h~9|MCCiiVdU4T_UBtb`|v`)V;YIv|JX model) throws Exception { model.remove("authorizationRequest"); - Map modelRequest = new HashMap(); - for (Object key : model.keySet()) { - modelRequest.put(key.toString(), model.get(key).toString()); - } // Map model AuthorizationRequest clientAuth = @@ -111,9 +108,18 @@ public class OAuth20AccessConfirmationController { approval.getStatus() == ApprovalStatus.APPROVED ? "true" : "false"); } } + model.put("scopes", scopes); + if(!model.containsKey(OAuth2Constants.PARAMETER.APPROVAL_PROMPT)) { + model.put(OAuth2Constants.PARAMETER.APPROVAL_PROMPT, client.getApprovalPrompt()); + } + ModelAndView modelAndView = new ModelAndView("authorize/oauth_access_confirmation"); + _logger.debug("Confirmation details "); + for (Object key : model.keySet()) { + _logger.debug("key " + key +"=" + model.get(key)); + } modelAndView.addObject("model", model); return modelAndView; } diff --git a/maxkey-protocols/maxkey-protocol-oauth-2.0/src/main/java/org/maxkey/authz/oauth2/provider/approval/controller/OAuth20UserApprovalHandler.java b/maxkey-protocols/maxkey-protocol-oauth-2.0/src/main/java/org/maxkey/authz/oauth2/provider/approval/endpoint/OAuth20UserApprovalHandler.java similarity index 98% rename from maxkey-protocols/maxkey-protocol-oauth-2.0/src/main/java/org/maxkey/authz/oauth2/provider/approval/controller/OAuth20UserApprovalHandler.java rename to maxkey-protocols/maxkey-protocol-oauth-2.0/src/main/java/org/maxkey/authz/oauth2/provider/approval/endpoint/OAuth20UserApprovalHandler.java index ac144abf1..bd5e272bd 100644 --- a/maxkey-protocols/maxkey-protocol-oauth-2.0/src/main/java/org/maxkey/authz/oauth2/provider/approval/controller/OAuth20UserApprovalHandler.java +++ b/maxkey-protocols/maxkey-protocol-oauth-2.0/src/main/java/org/maxkey/authz/oauth2/provider/approval/endpoint/OAuth20UserApprovalHandler.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.maxkey.authz.oauth2.provider.approval.controller; +package org.maxkey.authz.oauth2.provider.approval.endpoint; import java.util.Collection; diff --git a/maxkey-protocols/maxkey-protocol-oauth-2.0/src/main/java/org/maxkey/authz/oauth2/provider/endpoint/AuthorizationEndpoint.java b/maxkey-protocols/maxkey-protocol-oauth-2.0/src/main/java/org/maxkey/authz/oauth2/provider/endpoint/AuthorizationEndpoint.java index bc593ed31..16ba153ac 100644 --- a/maxkey-protocols/maxkey-protocol-oauth-2.0/src/main/java/org/maxkey/authz/oauth2/provider/endpoint/AuthorizationEndpoint.java +++ b/maxkey-protocols/maxkey-protocol-oauth-2.0/src/main/java/org/maxkey/authz/oauth2/provider/endpoint/AuthorizationEndpoint.java @@ -20,10 +20,8 @@ import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Map; import java.util.Set; - import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; - import org.maxkey.authz.oauth2.common.OAuth2AccessToken; import org.maxkey.authz.oauth2.common.OAuth2Constants; import org.maxkey.authz.oauth2.common.exceptions.InvalidClientException; @@ -62,8 +60,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.SessionAttributes; -import org.springframework.web.bind.support.DefaultSessionAttributeStore; -import org.springframework.web.bind.support.SessionAttributeStore; import org.springframework.web.bind.support.SessionStatus; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.View; @@ -71,10 +67,8 @@ import org.springframework.web.servlet.view.RedirectView; import org.springframework.web.util.UriComponents; import org.springframework.web.util.UriComponentsBuilder; import org.springframework.web.util.UriTemplate; - import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; - import org.maxkey.authz.oauth2.provider.ClientDetailsService; /** @@ -114,8 +108,6 @@ public class AuthorizationEndpoint extends AbstractEndpoint { private UserApprovalHandler userApprovalHandler = new DefaultUserApprovalHandler(); - private SessionAttributeStore sessionAttributeStore = new DefaultSessionAttributeStore(); - private OAuth2RequestValidator oauth2RequestValidator = new DefaultOAuth2RequestValidator(); private String userApprovalPage = "forward:" + OAuth2Constants.ENDPOINT.ENDPOINT_APPROVAL_CONFIRM; @@ -124,9 +116,6 @@ public class AuthorizationEndpoint extends AbstractEndpoint { private Object implicitLock = new Object(); - public void setSessionAttributeStore(SessionAttributeStore sessionAttributeStore) { - this.sessionAttributeStore = sessionAttributeStore; - } public void setErrorPage(String errorPage) { this.errorPage = errorPage; @@ -144,7 +133,7 @@ public class AuthorizationEndpoint extends AbstractEndpoint { Set responseTypes = authorizationRequest.getResponseTypes(); - if (!responseTypes.contains("token") && !responseTypes.contains("code")) { + if (!responseTypes.contains(OAuth2Constants.PARAMETER.TOKEN) && !responseTypes.contains(OAuth2Constants.PARAMETER.CODE)) { throw new UnsupportedResponseTypeException("Unsupported response types: " + responseTypes); } @@ -188,10 +177,10 @@ public class AuthorizationEndpoint extends AbstractEndpoint { // Validation is all done, so we can check for auto approval... if (authorizationRequest.isApproved()) { - if (responseTypes.contains("token")) { + if (responseTypes.contains(OAuth2Constants.PARAMETER.TOKEN)) { return getImplicitGrantResponse(authorizationRequest); } - if (responseTypes.contains("code")) { + if (responseTypes.contains(OAuth2Constants.PARAMETER.CODE)) { return new ModelAndView(getAuthorizationCodeResponse(authorizationRequest, (Authentication) principal)); } @@ -245,11 +234,11 @@ public class AuthorizationEndpoint extends AbstractEndpoint { if (!authorizationRequest.isApproved()) { return new RedirectView(getUnsuccessfulRedirect(authorizationRequest, - new UserDeniedAuthorizationException("User denied access"), responseTypes.contains("token")), + new UserDeniedAuthorizationException("User denied access"), responseTypes.contains(OAuth2Constants.PARAMETER.TOKEN)), false, true, false); } - if (responseTypes.contains("token")) { + if (responseTypes.contains(OAuth2Constants.PARAMETER.TOKEN)) { return getImplicitGrantResponse(authorizationRequest).getView(); } @@ -326,26 +315,26 @@ public class AuthorizationEndpoint extends AbstractEndpoint { url.append("#"); } - url.append("access_token={access_token}"); - url.append("&token_type={token_type}"); - vars.put("access_token", accessToken.getValue()); - vars.put("token_type", accessToken.getTokenType()); + url.append(templateUrlVar(OAuth2Constants.PARAMETER.ACCESS_TOKEN)); + url.append("&").append(templateUrlVar(OAuth2Constants.PARAMETER.TOKEN_TYPE)); + vars.put(OAuth2Constants.PARAMETER.ACCESS_TOKEN, accessToken.getValue()); + vars.put(OAuth2Constants.PARAMETER.TOKEN_TYPE, accessToken.getTokenType()); String state = authorizationRequest.getState(); if (state != null) { - url.append("&state={state}"); - vars.put("state", state); + url.append("&").append(templateUrlVar(OAuth2Constants.PARAMETER.STATE)); + vars.put(OAuth2Constants.PARAMETER.STATE, state); } Date expiration = accessToken.getExpiration(); if (expiration != null) { long expires_in = (expiration.getTime() - System.currentTimeMillis()) / 1000; - url.append("&expires_in={expires_in}"); - vars.put("expires_in", expires_in); + url.append("&").append(templateUrlVar(OAuth2Constants.PARAMETER.EXPIRES_IN)); + vars.put(OAuth2Constants.PARAMETER.EXPIRES_IN, expires_in); } String originalScope = authorizationRequest.getRequestParameters().get(OAuth2Utils.SCOPE); if (originalScope == null || !OAuth2Utils.parseParameterList(originalScope).equals(accessToken.getScope())) { - url.append("&" + OAuth2Utils.SCOPE + "={scope}"); - vars.put("scope", OAuth2Utils.formatParameterList(accessToken.getScope())); + url.append("&").append(templateUrlVar(OAuth2Constants.PARAMETER.SCOPE)); + vars.put(OAuth2Constants.PARAMETER.SCOPE, OAuth2Utils.formatParameterList(accessToken.getScope())); } Map additionalInformation = accessToken.getAdditionalInformation(); for (String key : additionalInformation.keySet()) { @@ -359,6 +348,10 @@ public class AuthorizationEndpoint extends AbstractEndpoint { // Do not include the refresh token (even if there is one) return template.expand(vars).toString(); } + + public String templateUrlVar(String parameterName) { + return parameterName + "={" + parameterName + "}"; + } private String generateCode(AuthorizationRequest authorizationRequest, Authentication authentication) throws AuthenticationException { @@ -376,7 +369,7 @@ public class AuthorizationEndpoint extends AbstractEndpoint { catch (OAuth2Exception e) { if (authorizationRequest.getState() != null) { - e.addAdditionalInformation("state", authorizationRequest.getState()); + e.addAdditionalInformation(OAuth2Constants.PARAMETER.STATE, authorizationRequest.getState()); } throw e; @@ -391,11 +384,11 @@ public class AuthorizationEndpoint extends AbstractEndpoint { } Map query = new LinkedHashMap(); - query.put("code", authorizationCode); + query.put(OAuth2Constants.PARAMETER.CODE, authorizationCode); String state = authorizationRequest.getState(); if (state != null) { - query.put("state", state); + query.put(OAuth2Constants.PARAMETER.STATE, state); } //this is for cas @@ -421,7 +414,7 @@ public class AuthorizationEndpoint extends AbstractEndpoint { query.put("error_description", failure.getMessage()); if (authorizationRequest.getState() != null) { - query.put("state", authorizationRequest.getState()); + query.put(OAuth2Constants.PARAMETER.STATE, authorizationRequest.getState()); } if (failure.getAdditionalInformation() != null) { diff --git a/maxkey-protocols/maxkey-protocol-oauth-2.0/src/main/java/org/maxkey/authz/oauth2/provider/endpoint/CheckTokenEndpoint.java b/maxkey-protocols/maxkey-protocol-oauth-2.0/src/main/java/org/maxkey/authz/oauth2/provider/endpoint/CheckTokenEndpoint.java index b352821ca..2c56bf10a 100644 --- a/maxkey-protocols/maxkey-protocol-oauth-2.0/src/main/java/org/maxkey/authz/oauth2/provider/endpoint/CheckTokenEndpoint.java +++ b/maxkey-protocols/maxkey-protocol-oauth-2.0/src/main/java/org/maxkey/authz/oauth2/provider/endpoint/CheckTokenEndpoint.java @@ -84,7 +84,7 @@ public class CheckTokenEndpoint { @ApiOperation(value = "OAuth 2.0 token检查接口", notes = "传递参数token",httpMethod="POST") @RequestMapping(value = OAuth2Constants.ENDPOINT.ENDPOINT_CHECK_TOKEN) @ResponseBody - public Map checkToken(@RequestParam("token") String value) { + public Map checkToken(@RequestParam(OAuth2Constants.PARAMETER.TOKEN) String value) { OAuth2AccessToken token = resourceServerTokenServices.readAccessToken(value); if (token == null) { diff --git a/maxkey-protocols/maxkey-protocol-oauth-2.0/src/main/java/org/maxkey/authz/oauth2/provider/endpoint/TokenEndpoint.java b/maxkey-protocols/maxkey-protocol-oauth-2.0/src/main/java/org/maxkey/authz/oauth2/provider/endpoint/TokenEndpoint.java index ff761a6a6..c5027846f 100644 --- a/maxkey-protocols/maxkey-protocol-oauth-2.0/src/main/java/org/maxkey/authz/oauth2/provider/endpoint/TokenEndpoint.java +++ b/maxkey-protocols/maxkey-protocol-oauth-2.0/src/main/java/org/maxkey/authz/oauth2/provider/endpoint/TokenEndpoint.java @@ -133,7 +133,7 @@ public class TokenEndpoint extends AbstractEndpoint { if (!StringUtils.hasText(tokenRequest.getGrantType())) { throw new InvalidRequestException("Missing grant type"); } - if (tokenRequest.getGrantType().equals("implicit")) { + if (tokenRequest.getGrantType().equals(OAuth2Constants.PARAMETER.GRANT_TYPE_IMPLICIT)) { throw new InvalidGrantException("Implicit grant type not supported from token endpoint"); } @@ -150,7 +150,8 @@ public class TokenEndpoint extends AbstractEndpoint { /**crystal.sea * code must uuid format */ - if (parameters.get("code") != null &&!StringGenerator.uuidMatches(parameters.get("code"))) { + if (parameters.get(OAuth2Constants.PARAMETER.CODE) != null + &&!StringGenerator.uuidMatches(parameters.get(OAuth2Constants.PARAMETER.CODE))) { throw new InvalidRequestException("The code is not valid format ."); } @@ -221,11 +222,11 @@ public class TokenEndpoint extends AbstractEndpoint { } private boolean isRefreshTokenRequest(Map parameters) { - return "refresh_token".equals(parameters.get("grant_type")) && parameters.get("refresh_token") != null; + return "refresh_token".equals(parameters.get(OAuth2Constants.PARAMETER.GRANT_TYPE)) && parameters.get("refresh_token") != null; } private boolean isAuthCodeRequest(Map parameters) { - return "authorization_code".equals(parameters.get("grant_type")) && parameters.get("code") != null; + return "authorization_code".equals(parameters.get(OAuth2Constants.PARAMETER.GRANT_TYPE)) && parameters.get(OAuth2Constants.PARAMETER.CODE) != null; } public void setOAuth2RequestValidator(OAuth2RequestValidator oAuth2RequestValidator) { diff --git a/maxkey-protocols/maxkey-protocol-oauth-2.0/src/main/java/org/maxkey/authz/oauth2/provider/endpoint/TokenEndpointAuthenticationFilter.java b/maxkey-protocols/maxkey-protocol-oauth-2.0/src/main/java/org/maxkey/authz/oauth2/provider/endpoint/TokenEndpointAuthenticationFilter.java index 6a4a51552..d4093e625 100644 --- a/maxkey-protocols/maxkey-protocol-oauth-2.0/src/main/java/org/maxkey/authz/oauth2/provider/endpoint/TokenEndpointAuthenticationFilter.java +++ b/maxkey-protocols/maxkey-protocol-oauth-2.0/src/main/java/org/maxkey/authz/oauth2/provider/endpoint/TokenEndpointAuthenticationFilter.java @@ -153,8 +153,8 @@ public class TokenEndpointAuthenticationFilter implements Filter { } try { - String grantType = request.getParameter("grant_type"); - if (grantType != null && grantType.equals("password")) { + String grantType = request.getParameter(OAuth2Constants.PARAMETER.GRANT_TYPE); + if (grantType != null && grantType.equals(OAuth2Constants.PARAMETER.GRANT_TYPE_PASSWORD)) { usernamepassword(request,response); }else { Authentication authentication=ClientCredentials(request,response); @@ -198,8 +198,8 @@ public class TokenEndpointAuthenticationFilter implements Filter { Authentication authResult = authenticationManager.authenticate(credentials); logger.debug("Authentication success: " + authResult.getName()); - String clientId = request.getParameter("client_id"); - String clientSecret = request.getParameter("client_secret"); + String clientId = request.getParameter(OAuth2Constants.PARAMETER.CLIENT_ID); + String clientSecret = request.getParameter(OAuth2Constants.PARAMETER.CLIENT_SECRET); UsernamePasswordAuthenticationToken authRequest = new UsernamePasswordAuthenticationToken(clientId, clientSecret); Authentication clientAuth = oauth20ClientAuthenticationManager.authenticate(authRequest); @@ -245,8 +245,8 @@ public class TokenEndpointAuthenticationFilter implements Filter { throw new HttpRequestMethodNotSupportedException(request.getMethod(), new String[] { "POST" }); } - String clientId = request.getParameter("client_id"); - String clientSecret = request.getParameter("client_secret"); + String clientId = request.getParameter(OAuth2Constants.PARAMETER.CLIENT_ID); + String clientSecret = request.getParameter(OAuth2Constants.PARAMETER.CLIENT_SECRET); if(clientId == null) { //for header authorization basic String authorization_bearer =request.getHeader("authorization"); @@ -305,8 +305,8 @@ public class TokenEndpointAuthenticationFilter implements Filter { * @return an authentication for validation (or null if there is no further authentication) */ protected Authentication extractCredentials(HttpServletRequest request) { - String grantType = request.getParameter("grant_type"); - if (grantType != null && grantType.equals("password")) { + String grantType = request.getParameter(OAuth2Constants.PARAMETER.GRANT_TYPE); + if (grantType != null && grantType.equals(OAuth2Constants.PARAMETER.GRANT_TYPE_PASSWORD)) { UsernamePasswordAuthenticationToken result = new UsernamePasswordAuthenticationToken( request.getParameter("username"), request.getParameter("password")); result.setDetails(authenticationDetailsSource.buildDetails(request)); @@ -316,7 +316,7 @@ public class TokenEndpointAuthenticationFilter implements Filter { } private Set getScope(HttpServletRequest request) { - return OAuth2Utils.parseParameterList(request.getParameter("scope")); + return OAuth2Utils.parseParameterList(request.getParameter(OAuth2Constants.PARAMETER.SCOPE)); } public void init(FilterConfig filterConfig) throws ServletException { @@ -346,7 +346,7 @@ public class TokenEndpointAuthenticationFilter implements Filter { uri = uri.substring(0, pathParamIndex); } - String clientId = request.getParameter("client_id"); + String clientId = request.getParameter(OAuth2Constants.PARAMETER.CLIENT_ID); if (clientId == null) { // Give basic auth a chance to work instead (it's preferred anyway) diff --git a/maxkey-protocols/maxkey-protocol-oauth-2.0/src/main/java/org/maxkey/authz/oauth2/provider/token/DefaultAccessTokenConverter.java b/maxkey-protocols/maxkey-protocol-oauth-2.0/src/main/java/org/maxkey/authz/oauth2/provider/token/DefaultAccessTokenConverter.java index 4838b282c..2523154de 100644 --- a/maxkey-protocols/maxkey-protocol-oauth-2.0/src/main/java/org/maxkey/authz/oauth2/provider/token/DefaultAccessTokenConverter.java +++ b/maxkey-protocols/maxkey-protocol-oauth-2.0/src/main/java/org/maxkey/authz/oauth2/provider/token/DefaultAccessTokenConverter.java @@ -110,6 +110,10 @@ public class DefaultAccessTokenConverter implements AccessTokenConverter { if (clientToken.getResourceIds() != null && !clientToken.getResourceIds().isEmpty()) { response.put(AUD, clientToken.getResourceIds()); } + + //default + response.put("active", Boolean.TRUE); + return response; } diff --git a/maxkey-protocols/maxkey-protocol-oauth-2.0/src/main/java/org/maxkey/autoconfigure/Oauth20AutoConfiguration.java b/maxkey-protocols/maxkey-protocol-oauth-2.0/src/main/java/org/maxkey/autoconfigure/Oauth20AutoConfiguration.java index b48037564..6deaa53ad 100644 --- a/maxkey-protocols/maxkey-protocol-oauth-2.0/src/main/java/org/maxkey/autoconfigure/Oauth20AutoConfiguration.java +++ b/maxkey-protocols/maxkey-protocol-oauth-2.0/src/main/java/org/maxkey/autoconfigure/Oauth20AutoConfiguration.java @@ -28,7 +28,7 @@ import org.maxkey.authz.oauth2.common.OAuth2Constants; import org.maxkey.authz.oauth2.provider.ClientDetailsService; import org.maxkey.authz.oauth2.provider.OAuth2UserDetailsService; import org.maxkey.authz.oauth2.provider.approval.TokenApprovalStore; -import org.maxkey.authz.oauth2.provider.approval.controller.OAuth20UserApprovalHandler; +import org.maxkey.authz.oauth2.provider.approval.endpoint.OAuth20UserApprovalHandler; import org.maxkey.authz.oauth2.provider.client.ClientDetailsUserDetailsService; import org.maxkey.authz.oauth2.provider.client.JdbcClientDetailsService; import org.maxkey.authz.oauth2.provider.code.AuthorizationCodeServices;