Package net.shibboleth.idp.ui.csrf
Class CSRFTokenManager
java.lang.Object
net.shibboleth.idp.ui.csrf.CSRFTokenManager
A thread-safe helper class for dealing with cross-site request forgery tokens.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static class
A simple default CSRF token validation predicate. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate String
The name of the HTTP parameter that contains the anti-csrf token.private BiPredicate<CSRFToken,
String> Predicate to validate the CSRF token.private IdentifierGenerationStrategy
The strategy used to generate a CSRF token value. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionGenerate aCSRFToken
using the token generation strategy derived token value.boolean
isValidCSRFToken
(CSRFToken csrfToken, String requestCsrfToken) Check the CSRF token matches the CSRF token in the request using thecsrfTokenValidationPredicate
.void
setCsrfParameterName
(String parameterName) Set the CSRF HTTP parameter name.void
setCsrfTokenValidationPredicate
(BiPredicate<CSRFToken, String> tokenValidationPredicate) Set the CSRF token validation predicate.void
setTokenGenerationStrategy
(IdentifierGenerationStrategy tokenStrategy) Set the CSRF token generation strategy.
-
Field Details
-
csrfParameterName
The name of the HTTP parameter that contains the anti-csrf token. -
tokenGenerationStrategy
The strategy used to generate a CSRF token value. -
csrfTokenValidationPredicate
Predicate to validate the CSRF token.
-
-
Constructor Details
-
CSRFTokenManager
public CSRFTokenManager()public Constructor.A 20 byte
SecureRandomIdentifierGenerationStrategy
is default to guarantee a strong token entropy.
-
-
Method Details
-
setTokenGenerationStrategy
Set the CSRF token generation strategy.- Parameters:
tokenStrategy
- CSRF token generation strategy
-
setCsrfTokenValidationPredicate
public void setCsrfTokenValidationPredicate(@Nonnull BiPredicate<CSRFToken, String> tokenValidationPredicate) Set the CSRF token validation predicate.- Parameters:
tokenValidationPredicate
- the CSRF token validation predicate.
-
setCsrfParameterName
Set the CSRF HTTP parameter name.- Parameters:
parameterName
- CSRF parameter name
-
generateCSRFToken
Generate aCSRFToken
using the token generation strategy derived token value. Set the HTTP parameter name from thecsrfParameterName
field.- Returns:
- a CSRF token
-
isValidCSRFToken
Check the CSRF token matches the CSRF token in the request using thecsrfTokenValidationPredicate
.- Parameters:
csrfToken
- the server side CSRF token.requestCsrfToken
- the CSRF token from the request.- Returns:
- true iff the CSRF token value matches the request CSRF token. False if they do not match.
-