Class LazyCsrfTokenRepository
java.lang.Object
org.springframework.security.web.csrf.LazyCsrfTokenRepository
- All Implemented Interfaces:
CsrfTokenRepository
A
CsrfTokenRepository that delays saving new CsrfToken until the
attributes of the CsrfToken that were generated are accessed.- Since:
- 4.1
-
Constructor Summary
ConstructorsConstructorDescriptionLazyCsrfTokenRepository(CsrfTokenRepository delegate) Creates a new instance -
Method Summary
Modifier and TypeMethodDescriptiongenerateToken(jakarta.servlet.http.HttpServletRequest request) Generates a new tokenloadToken(jakarta.servlet.http.HttpServletRequest request) Delegates to the injectedCsrfTokenRepositoryvoidsaveToken(CsrfToken token, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) Does nothing if theCsrfTokenis not null.
-
Constructor Details
-
LazyCsrfTokenRepository
Creates a new instance- Parameters:
delegate- theCsrfTokenRepositoryto use. Cannot be null- Throws:
IllegalArgumentException- if delegate is null.
-
-
Method Details
-
generateToken
Generates a new token- Specified by:
generateTokenin interfaceCsrfTokenRepository- Parameters:
request- theHttpServletRequestto use. TheHttpServletRequestmust have theHttpServletResponseas an attribute with the name ofHttpServletResponse.class.getName()- Returns:
- the
CsrfTokenthat was generated. Cannot be null.
-
saveToken
public void saveToken(CsrfToken token, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) Does nothing if theCsrfTokenis 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:
saveTokenin interfaceCsrfTokenRepository- Parameters:
token- theCsrfTokento save or null to deleterequest- theHttpServletRequestto useresponse- theHttpServletResponseto use
-
loadToken
Delegates to the injectedCsrfTokenRepository- Specified by:
loadTokenin interfaceCsrfTokenRepository- Parameters:
request- theHttpServletRequestto use- Returns:
- the
CsrfTokenor null if none exists
-