Class JWTClientSecretAuthenticator
- java.lang.Object
- 
- org.keycloak.authentication.authenticators.client.AbstractClientAuthenticator
- 
- org.keycloak.authentication.authenticators.client.JWTClientSecretAuthenticator
 
 
- 
- All Implemented Interfaces:
- ClientAuthenticator,- ClientAuthenticatorFactory,- ConfigurableAuthenticatorFactory,- ConfiguredProvider,- Provider,- ProviderFactory<ClientAuthenticator>
 
 public class JWTClientSecretAuthenticator extends AbstractClientAuthenticator Client authentication based on JWT signed by client secret instead of private key . See specs for more details.This is server side, which verifies JWT from client_assertion parameter, where the assertion was created on adapter side by org.keycloak.adapters.authentication.JWTClientSecretCredentialsProvider TODO: Try to create abstract superclass to be shared with JWTClientAuthenticator. Most of the code can be reused
- 
- 
Field SummaryFields Modifier and Type Field Description static StringPROVIDER_ID- 
Fields inherited from interface org.keycloak.authentication.ConfigurableAuthenticatorFactoryREQUIREMENT_CHOICES
 
- 
 - 
Constructor SummaryConstructors Constructor Description JWTClientSecretAuthenticator()
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description voidauthenticateClient(ClientAuthenticationFlowContext context)Initial call for the authenticator.Map<String,Object>getAdapterConfiguration(ClientModel client)Get configuration, which needs to be used for adapter ( keycloak.json ) of particular client.List<ProviderConfigProperty>getConfigProperties()List<ProviderConfigProperty>getConfigPropertiesPerClient()List of config properties for this client implementation.StringgetDisplayType()Friendly name for the authenticatorStringgetHelpText()StringgetId()Set<String>getProtocolAuthenticatorMethods(String loginProtocol)Get authentication methods for the specified protocolAuthenticationExecutionModel.Requirement[]getRequirementChoices()What requirement settings are allowed.booleanisConfigurable()Is this authenticator configurable globally?booleansupportsSecret()Is this authenticator supports client secret?- 
Methods inherited from class org.keycloak.authentication.authenticators.client.AbstractClientAuthenticatorclose, create, create, getReferenceCategory, init, isFormDataRequest, isUserSetupAllowed, postInit
 - 
Methods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 - 
Methods inherited from interface org.keycloak.provider.ConfiguredProvidergetConfig
 - 
Methods inherited from interface org.keycloak.provider.ProviderFactorygetConfigMetadata, order
 
- 
 
- 
- 
- 
Field Detail- 
PROVIDER_IDpublic static final String PROVIDER_ID - See Also:
- Constant Field Values
 
 
- 
 - 
Method Detail- 
authenticateClientpublic void authenticateClient(ClientAuthenticationFlowContext context) Description copied from interface:ClientAuthenticatorInitial call for the authenticator. This method should check the current HTTP request to determine if the request satisfies the ClientAuthenticator's requirements. If it doesn't, it should send back a challenge response by calling the ClientAuthenticationFlowContext.challenge(Response).
 - 
isConfigurablepublic boolean isConfigurable() Description copied from interface:ClientAuthenticatorFactoryIs this authenticator configurable globally?- Returns:
 
 - 
getConfigPropertiesPerClientpublic List<ProviderConfigProperty> getConfigPropertiesPerClient() Description copied from interface:ClientAuthenticatorFactoryList of config properties for this client implementation. Those will be shown in admin console in clients credentials tab and can be configured per client. Applicable only if "isConfigurablePerClient" is true- Returns:
 
 - 
getAdapterConfigurationpublic Map<String,Object> getAdapterConfiguration(ClientModel client) Description copied from interface:ClientAuthenticatorFactoryGet configuration, which needs to be used for adapter ( keycloak.json ) of particular client. Some implementations may return just template and user needs to edit the values according to his environment (For example fill the location of keystore file)- Returns:
 
 - 
getProtocolAuthenticatorMethodspublic Set<String> getProtocolAuthenticatorMethods(String loginProtocol) Description copied from interface:ClientAuthenticatorFactoryGet authentication methods for the specified protocol- Parameters:
- loginProtocol- corresponds to- ProviderFactory.getId()
- Returns:
- name of supported client authenticator methods in the protocol specific "language"
 
 - 
supportsSecretpublic boolean supportsSecret() Description copied from interface:ClientAuthenticatorFactoryIs this authenticator supports client secret?- Returns:
- if it supports secret
 
 - 
getIdpublic String getId() 
 - 
getDisplayTypepublic String getDisplayType() Description copied from interface:ConfigurableAuthenticatorFactoryFriendly name for the authenticator- Returns:
 
 - 
getRequirementChoicespublic AuthenticationExecutionModel.Requirement[] getRequirementChoices() Description copied from interface:ConfigurableAuthenticatorFactoryWhat requirement settings are allowed.- Returns:
 
 - 
getHelpTextpublic String getHelpText() 
 - 
getConfigPropertiespublic List<ProviderConfigProperty> getConfigProperties() 
 
- 
 
-