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 class
JwtAuthProvider.Builder
Fluent API builder forJwtAuthProvider
.static class
JwtAuthProvider.JwtOutboundTarget
A custom object to configure specific handling of outbound calls.
-
Field Summary
Fields Modifier and Type Field Description static String
CONFIG_EXPECTED_AUDIENCES
Configuration key for expected audiences of incoming tokens.static String
CONFIG_EXPECTED_ISSUER
Configuration key for expected issuer of incoming tokens.static String
EP_PROPERTY_OUTBOUND_USER
Configure 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.Builder
builder()
A builder for this provider.static JwtAuthProvider
create(Config config)
Create provider instance from configuration.boolean
isOutboundSupported(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 AuthenticationResponse
syncAuthenticate(ProviderRequest providerRequest)
Synchronous authentication.OutboundSecurityResponse
syncOutbound(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
-
CONFIG_EXPECTED_AUDIENCES
public static final String CONFIG_EXPECTED_AUDIENCES
Configuration key for expected audiences 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:SecurityProvider
Provide 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:
supportedAnnotations
in interfaceSecurityProvider
- Returns:
- Collection of annotations this provider expects.
-
syncAuthenticate
protected AuthenticationResponse syncAuthenticate(ProviderRequest providerRequest)
Description copied from class:SynchronousProvider
Synchronous authentication.- Overrides:
syncAuthenticate
in 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:OutboundSecurityProvider
Check if the path to be executed is supported by this security provider. Defaults to true.- Specified by:
isOutboundSupported
in 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:SynchronousProvider
Synchronous outbound security.- Overrides:
syncOutbound
in 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)
-
-