Class LazyCsrfTokenRepository
- java.lang.Object
-
- org.springframework.security.web.csrf.LazyCsrfTokenRepository
-
- All Implemented Interfaces:
CsrfTokenRepository
public final class LazyCsrfTokenRepository extends java.lang.Object implements CsrfTokenRepository
ACsrfTokenRepository
that delays saving newCsrfToken
until the attributes of theCsrfToken
that were generated are accessed.- Since:
- 4.1
-
-
Constructor Summary
Constructors Constructor Description LazyCsrfTokenRepository(CsrfTokenRepository delegate)
Creates a new instance
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description CsrfToken
generateToken(javax.servlet.http.HttpServletRequest request)
Generates a new tokenCsrfToken
loadToken(javax.servlet.http.HttpServletRequest request)
Delegates to the injectedCsrfTokenRepository
void
saveToken(CsrfToken token, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
Does nothing if theCsrfToken
is not null.
-
-
-
Constructor Detail
-
LazyCsrfTokenRepository
public LazyCsrfTokenRepository(CsrfTokenRepository delegate)
Creates a new instance- Parameters:
delegate
- theCsrfTokenRepository
to use. Cannot be null- Throws:
java.lang.IllegalArgumentException
- if delegate is null.
-
-
Method Detail
-
generateToken
public CsrfToken generateToken(javax.servlet.http.HttpServletRequest request)
Generates a new token- Specified by:
generateToken
in interfaceCsrfTokenRepository
- Parameters:
request
- theHttpServletRequest
to use. TheHttpServletRequest
must have theHttpServletResponse
as an attribute with the name ofHttpServletResponse.class.getName()
- Returns:
- the
CsrfToken
that was generated. Cannot be null.
-
saveToken
public void saveToken(CsrfToken token, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
Does nothing if theCsrfToken
is not null. Saving is done only when theCsrfToken.getToken()
is accessed fromgenerateToken(HttpServletRequest)
. If it is null, then the save is performed immediately.- Specified by:
saveToken
in interfaceCsrfTokenRepository
- Parameters:
token
- theCsrfToken
to save or null to deleterequest
- theHttpServletRequest
to useresponse
- theHttpServletResponse
to use
-
loadToken
public CsrfToken loadToken(javax.servlet.http.HttpServletRequest request)
Delegates to the injectedCsrfTokenRepository
- Specified by:
loadToken
in interfaceCsrfTokenRepository
- Parameters:
request
- theHttpServletRequest
to use- Returns:
- the
CsrfToken
or null if none exists
-
-