Class RequestAttributeSecurityContextRepository
java.lang.Object
org.springframework.security.web.context.RequestAttributeSecurityContextRepository
- All Implemented Interfaces:
- SecurityContextRepository
public final class RequestAttributeSecurityContextRepository
extends Object
implements SecurityContextRepository
Stores the 
SecurityContext on a
 ServletRequest.setAttribute(String, Object) so that it can be
 restored when different dispatch types occur. It will not be available on subsequent
 requests.
 Unlike HttpSessionSecurityContextRepository this filter has no need to persist
 the SecurityContext on the response being committed because the
 SecurityContext will not be available for subsequent requests for
 RequestAttributeSecurityContextRepository.- Since:
- 5.7
- 
Field SummaryFields
- 
Constructor SummaryConstructorsConstructorDescriptionCreates a new instance usingDEFAULT_REQUEST_ATTR_NAME.RequestAttributeSecurityContextRepository(String requestAttributeName) Creates a new instance with the specified request attribute name.
- 
Method SummaryModifier and TypeMethodDescriptionbooleancontainsContext(jakarta.servlet.http.HttpServletRequest request) Allows the repository to be queried as to whether it contains a security context for the current request.loadContext(HttpRequestResponseHolder requestResponseHolder) Deprecated.loadDeferredContext(jakarta.servlet.http.HttpServletRequest request) Defers loading theSecurityContextusing theHttpServletRequestuntil it is needed by the application.voidsaveContext(SecurityContext context, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) Stores the security context on completion of a request.voidsetSecurityContextHolderStrategy(SecurityContextHolderStrategy securityContextHolderStrategy) Sets theSecurityContextHolderStrategyto use.
- 
Field Details- 
DEFAULT_REQUEST_ATTR_NAMEThe default request attribute name to use.
 
- 
- 
Constructor Details- 
RequestAttributeSecurityContextRepositorypublic RequestAttributeSecurityContextRepository()Creates a new instance usingDEFAULT_REQUEST_ATTR_NAME.
- 
RequestAttributeSecurityContextRepositoryCreates a new instance with the specified request attribute name.- Parameters:
- requestAttributeName- the request attribute name to set to the- SecurityContext.
 
 
- 
- 
Method Details- 
containsContextpublic boolean containsContext(jakarta.servlet.http.HttpServletRequest request) Description copied from interface:SecurityContextRepositoryAllows the repository to be queried as to whether it contains a security context for the current request.- Specified by:
- containsContextin interface- SecurityContextRepository
- Parameters:
- request- the current request
- Returns:
- true if a context is found for the request, false otherwise
 
- 
loadContextDeprecated.Description copied from interface:SecurityContextRepositoryObtains the security context for the supplied request. For an unauthenticated user, an empty context implementation should be returned. This method should not return null.The use of the HttpRequestResponseHolder parameter allows implementations to return wrapped versions of the request or response (or both), allowing them to access implementation-specific state for the request. The values obtained from the holder will be passed on to the filter chain and also to the saveContext method when it is finally called to allow implicit saves of the SecurityContext. Implementations may wish to return a subclass of SaveContextOnUpdateOrErrorResponseWrapperas the response object, which guarantees that the context is persisted when an error or redirect occurs. Implementations may allow passing in the original request response to allow explicit saves.- Specified by:
- loadContextin interface- SecurityContextRepository
- Parameters:
- requestResponseHolder- holder for the current request and response for which the context should be loaded.
- Returns:
- The security context which should be used for the current request, never null.
 
- 
loadDeferredContextDescription copied from interface:SecurityContextRepositoryDefers loading theSecurityContextusing theHttpServletRequestuntil it is needed by the application.- Specified by:
- loadDeferredContextin interface- SecurityContextRepository
- Parameters:
- request- the- HttpServletRequestto load the- SecurityContextfrom
- Returns:
- a DeferredSecurityContextthat returns theSecurityContextwhich cannot be null
 
- 
saveContextpublic void saveContext(SecurityContext context, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) Description copied from interface:SecurityContextRepositoryStores the security context on completion of a request.- Specified by:
- saveContextin interface- SecurityContextRepository
- Parameters:
- context- the non-null context which was obtained from the holder.
 
- 
setSecurityContextHolderStrategypublic void setSecurityContextHolderStrategy(SecurityContextHolderStrategy securityContextHolderStrategy) Sets theSecurityContextHolderStrategyto use. The default action is to use theSecurityContextHolderStrategystored inSecurityContextHolder.- Since:
- 5.8
 
 
- 
SecurityContextRepository.loadContext(org.springframework.security.web.context.HttpRequestResponseHolder)