java.lang.Object | ||
↳ | org.springframework.web.filter.GenericFilterBean | |
↳ | org.springframework.security.web.authentication.preauth.AbstractPreAuthenticatedProcessingFilter |
![]() |
Base class for processing filters that handle pre-authenticated authentication requests, where it is assumed that the principal has already been authenticated by an external system.
The purpose is then only to extract the necessary information on the principal from the incoming request, rather
than to authenticate them. External authentication systems may provide this information via request data such as
headers or cookies which the pre-authentication system can extract. It is assumed that the external system is
responsible for the accuracy of the data and preventing the submission of forged values.
Subclasses must implement the getPreAuthenticatedPrincipal()
and getPreAuthenticatedCredentials()
methods. Subclasses of this filter are typically used in combination with a
PreAuthenticatedAuthenticationProvider
, which is used to load additional data for the user.
This provider will reject null credentials, so the getPreAuthenticatedCredentials(HttpServletRequest)
method should not return
null for a valid principal.
If the security context already contains an Authentication
object (either from a invocation of the
filter or because of some other authentication mechanism), the filter will do nothing by default. You can force
it to check for a change in the principal by setting the checkForPrincipalChanges
property.
By default, the filter chain will proceed when an authentication attempt fails in order to allow other
authentication mechanisms to process the request. To reject the credentials immediately, set the
continueFilterChainOnUnsuccessfulAuthentication flag to false. The exception raised by the
AuthenticationManager will the be re-thrown. Note that this will not affect cases where the principal
returned by getPreAuthenticatedPrincipal(HttpServletRequest)
is null, when the chain will still proceed as normal.
[Expand]
Inherited Fields | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Check whether all required properties have been set.
| |||||||||||
Try to authenticate a pre-authenticated user with Spring Security if the user has not yet been authenticated.
| |||||||||||
If set, the pre-authenticated principal will be checked on each request and compared
against the name of the current Authentication object.
| |||||||||||
If set to
true , any AuthenticationException raised by the AuthenticationManager will be
swallowed, and the request will be allowed to proceed, potentially using alternative authentication mechanisms. | |||||||||||
If checkForPrincipalChanges is set, and a change of principal is detected, determines whether
any existing session should be invalidated before proceeding to authenticate the new principal.
|
Protected Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Override to extract the credentials (if applicable) from the current request.
| |||||||||||
Override to extract the principal information from the current request
| |||||||||||
Puts the
Authentication instance returned by the
authentication manager into the secure context. | |||||||||||
Ensures the authentication object in the secure context is set to null when authentication fails.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() | |||||||||||
![]() | |||||||||||
![]() | |||||||||||
![]() | |||||||||||
![]() | |||||||||||
![]() | |||||||||||
![]() | |||||||||||
![]() |
Check whether all required properties have been set.
Try to authenticate a pre-authenticated user with Spring Security if the user has not yet been authenticated.
IOException | |
---|---|
ServletException |
anApplicationEventPublisher | The ApplicationEventPublisher to use |
---|
authenticationDetailsSource | The AuthenticationDetailsSource to use |
---|
authenticationManager | The AuthenticationManager to use |
---|
If set, the pre-authenticated principal will be checked on each request and compared against the name of the current Authentication object. If a change is detected, the user will be reauthenticated.
If set to true
, any AuthenticationException
raised by the AuthenticationManager
will be
swallowed, and the request will be allowed to proceed, potentially using alternative authentication mechanisms.
If false
(the default), authentication failure will result in an immediate exception.
shouldContinue | set to true to allow the request to proceed after a failed authentication.
|
---|
If checkForPrincipalChanges is set, and a change of principal is detected, determines whether any existing session should be invalidated before proceeding to authenticate the new principal.
invalidateSessionOnPrincipalChange | false to retain the existing session. Defaults to true. |
---|
Override to extract the credentials (if applicable) from the current request. Should not return null for a valid principal, though some implementations may return a dummy value.
Override to extract the principal information from the current request
Puts the Authentication
instance returned by the
authentication manager into the secure context.
Ensures the authentication object in the secure context is set to null when authentication fails.
Caches the failure exception as a request attribute