Package io.helidon.microprofile.jwt.auth
Class JwtAuthProvider
- java.lang.Object
-
- io.helidon.security.spi.SynchronousProvider
-
- io.helidon.microprofile.jwt.auth.JwtAuthProvider
-
- All Implemented Interfaces:
AuthenticationProvider,OutboundSecurityProvider,SecurityProvider
public class JwtAuthProvider extends SynchronousProvider implements AuthenticationProvider, OutboundSecurityProvider
Provider that provides JWT authentication.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classJwtAuthProvider.BuilderFluent API builder forJwtAuthProvider.static classJwtAuthProvider.JwtOutboundTargetA custom object to configure specific handling of outbound calls.
-
Field Summary
Fields Modifier and Type Field Description static StringCONFIG_EXPECTED_ISSUERConfiguration key for expected issuer of incoming tokens.static StringEP_PROPERTY_OUTBOUND_USERConfigure this for outbound requests to override user to use.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static JwtAuthProvider.Builderbuilder()A builder for this provider.static JwtAuthProvidercreate(Config config)Create provider instance from configuration.booleanisOutboundSupported(ProviderRequest providerRequest, SecurityEnvironment outboundEnv, EndpointConfig outboundConfig)Check if the path to be executed is supported by this security provider.Collection<Class<? extends Annotation>>supportedAnnotations()Provide extension annotations supported by this provider (e.g.protected AuthenticationResponsesyncAuthenticate(ProviderRequest providerRequest)Synchronous authentication.OutboundSecurityResponsesyncOutbound(ProviderRequest providerRequest, SecurityEnvironment outboundEnv, EndpointConfig outboundEndpointConfig)Synchronous outbound security.-
Methods inherited from class io.helidon.security.spi.SynchronousProvider
authenticate, authorize, outboundSecurity, syncAuthorize
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface io.helidon.security.spi.AuthenticationProvider
authenticate
-
Methods inherited from interface io.helidon.security.spi.OutboundSecurityProvider
outboundSecurity
-
Methods inherited from interface io.helidon.security.spi.SecurityProvider
supportedAttributes, supportedConfigKeys, supportedCustomObjects
-
-
-
-
Field Detail
-
EP_PROPERTY_OUTBOUND_USER
public static final String EP_PROPERTY_OUTBOUND_USER
Configure this for outbound requests to override user to use.- See Also:
- Constant Field Values
-
CONFIG_EXPECTED_ISSUER
public static final String CONFIG_EXPECTED_ISSUER
Configuration key for expected issuer of incoming tokens. Used for validation of JWT.- See Also:
- Constant Field Values
-
-
Method Detail
-
builder
public static JwtAuthProvider.Builder builder()
A builder for this provider.- Returns:
- builder to create a new instance
-
create
public static JwtAuthProvider create(Config config)
Create provider instance from configuration.- Parameters:
config- configuration of this provider- Returns:
- provider instance
-
supportedAnnotations
public Collection<Class<? extends Annotation>> supportedAnnotations()
Description copied from interface:SecurityProviderProvide extension annotations supported by this provider (e.g.javax.annotation.security.RolesAllowed). Annotations will be collected according to framework in use. For JAX-RS, annotations from application class, resource class and resource methods will be collected.- Specified by:
supportedAnnotationsin interfaceSecurityProvider- Returns:
- Collection of annotations this provider expects.
- See Also:
EndpointConfig.annotations(EndpointConfig.AnnotationScope...),EndpointConfig.combineAnnotations(Class, EndpointConfig.AnnotationScope...)
-
syncAuthenticate
protected AuthenticationResponse syncAuthenticate(ProviderRequest providerRequest)
Description copied from class:SynchronousProviderSynchronous authentication.- Overrides:
syncAuthenticatein classSynchronousProvider- Parameters:
providerRequest- context with environment, subject(s) etc.- Returns:
- authentication response
- See Also:
AuthenticationProvider.authenticate(ProviderRequest)
-
isOutboundSupported
public boolean isOutboundSupported(ProviderRequest providerRequest, SecurityEnvironment outboundEnv, EndpointConfig outboundConfig)
Description copied from interface:OutboundSecurityProviderCheck if the path to be executed is supported by this security provider. Defaults to true.- Specified by:
isOutboundSupportedin interfaceOutboundSecurityProvider- Parameters:
providerRequest- context with environment, subject(s) etc. that was receivedoutboundEnv- environment for outbound calloutboundConfig- outbound endpoint configuration- Returns:
- true if this identity propagator can generate required headers for the path defined
-
syncOutbound
public OutboundSecurityResponse syncOutbound(ProviderRequest providerRequest, SecurityEnvironment outboundEnv, EndpointConfig outboundEndpointConfig)
Description copied from class:SynchronousProviderSynchronous outbound security.- Overrides:
syncOutboundin classSynchronousProvider- Parameters:
providerRequest- context with environment, subject(s) etc.outboundEnv- environment of this outbound calloutboundEndpointConfig- endpoint config for outbound call- Returns:
- outbound response
- See Also:
OutboundSecurityProvider.outboundSecurity(ProviderRequest, SecurityEnvironment, EndpointConfig),OutboundSecurityProvider.isOutboundSupported(ProviderRequest, SecurityEnvironment, EndpointConfig)
-
-