Class JwtProvider
java.lang.Object
io.helidon.security.spi.SynchronousProvider
io.helidon.security.providers.jwt.JwtProvider
- All Implemented Interfaces:
AuthenticationProvider
,OutboundSecurityProvider
,SecurityProvider
public final class JwtProvider
extends SynchronousProvider
implements AuthenticationProvider, OutboundSecurityProvider
Provider that can process JWT tokens in request headers and assert identity (e.g. create a
Principal
for a SubjectType.USER
or SubjectType.SERVICE
.
This provider can also propagate identity using JWT token, either by creating a new
JWT or by propagating the existing token "as is".
Verification and signatures of tokens is done through JWK standard - two separate
JWK files are expected (one for verification, one for signatures).-
Nested Class Summary
Modifier and TypeClassDescriptionstatic final class
Fluent API builder forJwtProvider
.static class
A custom object to configure specific handling of outbound calls. -
Field Summary
Modifier and TypeFieldDescriptionstatic final String
Deprecated, for removal: This API element is subject to removal in a future version. -
Method Summary
Modifier and TypeMethodDescriptionstatic JwtProvider.Builder
builder()
A builder for this provider.static JwtProvider
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.protected AuthenticationResponse
syncAuthenticate
(ProviderRequest providerRequest) Synchronous authentication.protected 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
supportedAnnotations, supportedAttributes, supportedConfigKeys, supportedCustomObjects
-
Field Details
-
EP_PROPERTY_OUTBOUND_USER
Deprecated, for removal: This API element is subject to removal in a future version.useEndpointConfig.PROPERTY_OUTBOUND_ID
instead, the value will change in 4.x as wellConfigure this for outbound requests to override user to use.- See Also:
-
-
Method Details
-
builder
A builder for this provider.- Returns:
- builder to create a new instance
-
create
Create provider instance from configuration.- Parameters:
config
- configuration of this provider- Returns:
- provider instance
-
syncAuthenticate
Description copied from class:SynchronousProvider
Synchronous authentication.- Overrides:
syncAuthenticate
in classSynchronousProvider
- Parameters:
providerRequest
- context with environment, subject(s) etc.- Returns:
- authentication response
- See Also:
-
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
protected 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:
-
EndpointConfig.PROPERTY_OUTBOUND_ID
instead, the value will change in 4.x as well