Remove setContext() + minor cleanup
Signed-off-by: Dmitry Telegin <demetrio@carretti.pro>
This commit is contained in:
parent
6a57614554
commit
c18c4bbeb8
11 changed files with 30 additions and 38 deletions
|
@ -50,28 +50,13 @@ public interface OAuth2GrantType extends Provider {
|
|||
*/
|
||||
EventType getEventType();
|
||||
|
||||
/**
|
||||
* Checks if the grant implementation supports the request.
|
||||
* The check will be performed after the initial matching against the "grant_type" parameter.
|
||||
* @param context grant request context
|
||||
* @return request supported
|
||||
*/
|
||||
default boolean supports(Context context) {
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets grant request context.
|
||||
* @param context grant request context
|
||||
*/
|
||||
void setContext(Context context);
|
||||
|
||||
/**
|
||||
* Processes grant request.
|
||||
* @param context grant request context
|
||||
*
|
||||
* @return token response
|
||||
*/
|
||||
Response process();
|
||||
Response process(Context context);
|
||||
|
||||
public static class Context {
|
||||
protected KeycloakSession session;
|
||||
|
@ -124,10 +109,6 @@ public interface OAuth2GrantType extends Provider {
|
|||
this.dPoP = context.dPoP;
|
||||
}
|
||||
|
||||
public KeycloakSession getSession() {
|
||||
return session;
|
||||
}
|
||||
|
||||
public void setFormParams(MultivaluedHashMap<String, String> formParams) {
|
||||
this.formParams = formParams;
|
||||
}
|
||||
|
|
|
@ -92,7 +92,6 @@ public class TokenEndpoint {
|
|||
|
||||
private String grantType;
|
||||
private OAuth2GrantType grant;
|
||||
private OAuth2GrantType.Context context;
|
||||
|
||||
private Cors cors;
|
||||
|
||||
|
@ -136,10 +135,8 @@ public class TokenEndpoint {
|
|||
checkParameterDuplicated();
|
||||
}
|
||||
|
||||
context = new OAuth2GrantType.Context(session, clientConfig, clientAuthAttributes, formParams, event, cors, tokenManager, dPoP);
|
||||
|
||||
grant.setContext(context);
|
||||
return grant.process();
|
||||
OAuth2GrantType.Context context = new OAuth2GrantType.Context(session, clientConfig, clientAuthAttributes, formParams, event, cors, tokenManager, dPoP);
|
||||
return grant.process(context);
|
||||
}
|
||||
|
||||
@Path("introspect")
|
||||
|
|
|
@ -59,7 +59,9 @@ public class AuthorizationCodeGrantType extends OAuth2GrantTypeBase {
|
|||
private static final Logger logger = Logger.getLogger(AuthorizationCodeGrantType.class);
|
||||
|
||||
@Override
|
||||
public Response process() {
|
||||
public Response process(Context context) {
|
||||
setContext(context);
|
||||
|
||||
checkAndRetrieveDPoPProof(Profile.isFeatureEnabled(Profile.Feature.DPOP));
|
||||
|
||||
String code = formParams.getFirst(OAuth2Constants.CODE);
|
||||
|
|
|
@ -60,7 +60,9 @@ public class ClientCredentialsGrantType extends OAuth2GrantTypeBase {
|
|||
private static final Logger logger = Logger.getLogger(ClientCredentialsGrantType.class);
|
||||
|
||||
@Override
|
||||
public Response process() {
|
||||
public Response process(Context context) {
|
||||
setContext(context);
|
||||
|
||||
if (client.isBearerOnly()) {
|
||||
event.error(Errors.INVALID_CLIENT);
|
||||
throw new CorsErrorResponseException(cors, OAuthErrorException.UNAUTHORIZED_CLIENT, "Bearer-only client not allowed to retrieve service account", Response.Status.UNAUTHORIZED);
|
||||
|
|
|
@ -88,8 +88,7 @@ public abstract class OAuth2GrantTypeBase implements OAuth2GrantType {
|
|||
protected HttpResponse response;
|
||||
protected HttpHeaders headers;
|
||||
|
||||
@Override
|
||||
public void setContext(Context context) {
|
||||
protected void setContext(Context context) {
|
||||
this.context = context;
|
||||
this.session = context.session;
|
||||
this.realm = context.realm;
|
||||
|
|
|
@ -49,7 +49,9 @@ import org.keycloak.services.managers.AppAuthManager;
|
|||
public class PermissionGrantType extends OAuth2GrantTypeBase {
|
||||
|
||||
@Override
|
||||
public Response process() {
|
||||
public Response process(Context context) {
|
||||
setContext(context);
|
||||
|
||||
event.detail(Details.AUTH_METHOD, "oauth_credentials");
|
||||
|
||||
String accessTokenString = null;
|
||||
|
@ -117,8 +119,7 @@ public class PermissionGrantType extends OAuth2GrantTypeBase {
|
|||
context.setClient(client);
|
||||
context.setClientConfig(clientConfig);
|
||||
context.setClientAuthAttributes(clientAuthAttributes);
|
||||
clientCredentialsGrant.setContext(context);
|
||||
accessTokenString = AccessTokenResponse.class.cast(clientCredentialsGrant.process().getEntity()).getToken();
|
||||
accessTokenString = AccessTokenResponse.class.cast(clientCredentialsGrant.process(context).getEntity()).getToken();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -49,7 +49,9 @@ public class RefreshTokenGrantType extends OAuth2GrantTypeBase {
|
|||
private static final Logger logger = Logger.getLogger(RefreshTokenGrantType.class);
|
||||
|
||||
@Override
|
||||
public Response process() {
|
||||
public Response process(Context context) {
|
||||
setContext(context);
|
||||
|
||||
checkAndRetrieveDPoPProof(Profile.isFeatureEnabled(Profile.Feature.DPOP));
|
||||
|
||||
String refreshToken = formParams.getFirst(OAuth2Constants.REFRESH_TOKEN);
|
||||
|
|
|
@ -60,7 +60,9 @@ public class ResourceOwnerPasswordCredentialsGrantType extends OAuth2GrantTypeBa
|
|||
private static final Logger logger = Logger.getLogger(ResourceOwnerPasswordCredentialsGrantType.class);
|
||||
|
||||
@Override
|
||||
public Response process() {
|
||||
public Response process(Context context) {
|
||||
setContext(context);
|
||||
|
||||
event.detail(Details.AUTH_METHOD, "oauth_credentials");
|
||||
|
||||
if (!client.isDirectAccessGrantsEnabled()) {
|
||||
|
|
|
@ -34,7 +34,9 @@ import org.keycloak.protocol.oidc.TokenExchangeProvider;
|
|||
public class TokenExchangeGrantType extends OAuth2GrantTypeBase {
|
||||
|
||||
@Override
|
||||
public Response process() {
|
||||
public Response process(Context context) {
|
||||
setContext(context);
|
||||
|
||||
event.detail(Details.AUTH_METHOD, "token_exchange");
|
||||
event.client(client);
|
||||
|
||||
|
|
|
@ -109,7 +109,9 @@ public class CibaGrantType extends OAuth2GrantTypeBase {
|
|||
}
|
||||
|
||||
@Override
|
||||
public Response process() {
|
||||
public Response process(Context context) {
|
||||
setContext(context);
|
||||
|
||||
if (!realm.getCibaPolicy().isOIDCCIBAGrantEnabled(client)) {
|
||||
event.error(Errors.NOT_ALLOWED);
|
||||
throw new CorsErrorResponseException(cors, OAuthErrorException.INVALID_GRANT,
|
||||
|
|
|
@ -206,7 +206,9 @@ public class DeviceGrantType extends OAuth2GrantTypeBase {
|
|||
}
|
||||
|
||||
@Override
|
||||
public Response process() {
|
||||
public Response process(Context context) {
|
||||
setContext(context);
|
||||
|
||||
if (!realm.getOAuth2DeviceConfig().isOAuth2DeviceAuthorizationGrantEnabled(client)) {
|
||||
event.error(Errors.NOT_ALLOWED);
|
||||
throw new CorsErrorResponseException(cors, OAuthErrorException.INVALID_GRANT,
|
||||
|
|
Loading…
Reference in a new issue