Package net.shibboleth.idp.authn.impl
Class ExtractUsernamePasswordFromBasicAuth
java.lang.Object
net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
org.opensaml.profile.action.AbstractProfileAction
org.opensaml.profile.action.AbstractConditionalProfileAction
net.shibboleth.idp.profile.AbstractProfileAction
net.shibboleth.idp.authn.AbstractAuthenticationAction
net.shibboleth.idp.authn.AbstractExtractionAction
net.shibboleth.idp.authn.impl.ExtractUsernamePasswordFromBasicAuth
- All Implemented Interfaces:
Component
,DestructableComponent
,InitializableComponent
,ProfileAction
,Aware
,MessageSource
,MessageSourceAware
,Action
public class ExtractUsernamePasswordFromBasicAuth extends AbstractExtractionAction
/**
An action that extracts a username and password from the HTTP
HttpHeaders.AUTHORIZATION
header,
creates a UsernamePasswordContext
, and attaches it to the AuthenticationContext
.- Event:
EventIds.PROCEED_EVENT_ID
,AuthnEventIds.NO_CREDENTIALS
,AuthnEventIds.INVALID_CREDENTIALS
- Precondition:
ProfileRequestContext.getSubcontext(AuthenticationContext.class, false) != null
- Postcondition:
- If getHttpServletRequest() != null, the content of the
HttpHeaders.AUTHORIZATION
header is parsed and any correctly-encoded information will be attached via aUsernamePasswordContext
.
-
Field Summary
Fields Modifier and Type Field Description private org.slf4j.Logger
log
Class logger. -
Constructor Summary
Constructors Constructor Description ExtractUsernamePasswordFromBasicAuth()
-
Method Summary
Modifier and Type Method Description protected Pair<String,String>
decodeCredentials(String encodedCredentials)
Decodes the credential string provided in the HTTP header, splits it in to a username and password, and returns them.protected void
doExecute(ProfileRequestContext profileRequestContext, AuthenticationContext authenticationContext)
Performs this authentication action.protected String
extractCredentials(javax.servlet.http.HttpServletRequest httpRequest)
Gets the encoded credentials passed in via theHttpHeaders.AUTHORIZATION
header.Methods inherited from class net.shibboleth.idp.authn.AbstractExtractionAction
applyTransforms, setLowercase, setTransforms, setTrim, setUppercase
Methods inherited from class net.shibboleth.idp.authn.AbstractAuthenticationAction
doExecute, doPreExecute, doPreExecute, setAuthenticationContextLookupStrategy
Methods inherited from class net.shibboleth.idp.profile.AbstractProfileAction
doExecute, execute, getMessage, getMessage, getMessage, getProfileContextLookupStrategy, getRequestContext, getResult, setMessageSource, setProfileContextLookupStrategy
Methods inherited from class org.opensaml.profile.action.AbstractConditionalProfileAction
getActivationCondition, setActivationCondition
Methods inherited from class org.opensaml.profile.action.AbstractProfileAction
doPostExecute, doPostExecute, execute, getHttpServletRequest, getHttpServletResponse, getLogPrefix, setHttpServletRequest, setHttpServletResponse
Methods inherited from class net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
destroy, doDestroy, doInitialize, initialize, isDestroyed, isInitialized
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface net.shibboleth.utilities.java.support.component.InitializableComponent
initialize, isInitialized
-
Field Details
-
log
@Nonnull private final org.slf4j.Logger logClass logger.
-
-
Constructor Details
-
ExtractUsernamePasswordFromBasicAuth
public ExtractUsernamePasswordFromBasicAuth()
-
-
Method Details
-
doExecute
protected void doExecute(@Nonnull ProfileRequestContext profileRequestContext, @Nonnull AuthenticationContext authenticationContext)Performs this authentication action. Default implementation throws an exception.- Overrides:
doExecute
in classAbstractAuthenticationAction
- Parameters:
profileRequestContext
- the current IdP profile request contextauthenticationContext
- the current authentication context
-
extractCredentials
@Nullable protected String extractCredentials(@Nonnull javax.servlet.http.HttpServletRequest httpRequest)Gets the encoded credentials passed in via theHttpHeaders.AUTHORIZATION
header. This method checks to ensure that the authentication scheme isHttpServletRequest.BASIC_AUTH
and then strips off and returns the follow on Base64-encoded credentials.- Parameters:
httpRequest
- current HTTP request- Returns:
- the Base64 encoded credentials, or null
-
decodeCredentials
@Nullable protected Pair<String,String> decodeCredentials(@Nonnull @NotEmpty String encodedCredentials)Decodes the credential string provided in the HTTP header, splits it in to a username and password, and returns them.- Parameters:
encodedCredentials
- the Base64 encoded credentials- Returns:
- a pair containing the username and password, respectively, or null
-