Processes an authentication form submission for an OAuth2 Authorization Server.
Login forms must present three parameters to this filter:
an OAuth2 clientId
username
password
The default parameter names to use are contained in the static fields org.springframework.security.oauth2.common.util.OAuth2Utils#CLIENT_ID
, SPRING_SECURITY_FORM_USERNAME_KEY
and SPRING_SECURITY_FORM_PASSWORD_KEY
. The parameter names for username/password can also be changed by setting the usernameParameter
and passwordParameter
properties.
This filter by default responds to the URL /login
.
Processes an OAuth2 client session Cookie
to establish an authentication user.
The way this filter selects the client session Cookie
is by appending the OAuth2Utils#CLIENT_ID
request parameter to the StatelessUtil#getSessionCookiePrefix()
, yielding, for example: BLSID-[client_id]
.
If the client session Cookie
exists, this filter will extract the Cookie’s
value, which is expected to be a SignedJWT
. The String
token and
the OAuth2Utils#CLIENT_ID
is then used to construct an OAuth2SessionAuthenticationToken
.
The OAuth2SessionAuthenticationToken
is then passed to AuthenticationManager#authenticate
, which usually is then handled by OAuth2SessionAuthenticationProvider
, unless another provider is implemented to handle authenticating the token.
Upon a successful authentication, this filter will set the Authentication
on the
SecurityContext
, refresh the client session Cookie
, and proceed with the rest of
the FilterChain
.
Upon a failed authentication, this filter will clear the SecurityContext
, and delegate to
the AuthenticationEntryPoint
to redirect the user to an appropriate location.
The Auth Service maintains a list of PersistanceHandler
implementations. It loops through the list of registered handlers and determines which one can process a given persistence event.
Here is an example list of handlers that are worth noting:
AdminUserPersistenceHandler
- Handles messages from the Persistence channel for AdminUser
data to update User
. This is designed to perform a replacement of existing data within this service from the admin user service.
CustomerPersistenceHandler
- Handles messages from the Persistence channel for Customer
data to update User
. This is designed to perform a replacement of existing data within this service from the customer service.
SegmentMemberPersistenceHandler
- Handles creation and deletes of customer segment/customer relationships. Segments are stored on the User
in their user attributes. This is designed to work in conjunction with the customer service