Browse Source

Decode cookie once in AbstractRememberMeServices

Issue gh-9192
pull/9197/head
zhuang 5 years ago committed by GitHub
parent
commit
ff58ac836e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      web/src/main/java/org/springframework/security/web/authentication/rememberme/AbstractRememberMeServices.java

4
web/src/main/java/org/springframework/security/web/authentication/rememberme/AbstractRememberMeServices.java

@ -208,13 +208,13 @@ public abstract class AbstractRememberMeServices
for (int j = 0; j < cookieValue.length() % 4; j++) { for (int j = 0; j < cookieValue.length() % 4; j++) {
cookieValue = cookieValue + "="; cookieValue = cookieValue + "=";
} }
String cookieAsPlainText;
try { try {
Base64.getDecoder().decode(cookieValue.getBytes()); cookieAsPlainText = new String(Base64.getDecoder().decode(cookieValue.getBytes()));
} }
catch (IllegalArgumentException ex) { catch (IllegalArgumentException ex) {
throw new InvalidCookieException("Cookie token was not Base64 encoded; value was '" + cookieValue + "'"); throw new InvalidCookieException("Cookie token was not Base64 encoded; value was '" + cookieValue + "'");
} }
String cookieAsPlainText = new String(Base64.getDecoder().decode(cookieValue.getBytes()));
String[] tokens = StringUtils.delimitedListToStringArray(cookieAsPlainText, DELIMITER); String[] tokens = StringUtils.delimitedListToStringArray(cookieAsPlainText, DELIMITER);
for (int i = 0; i < tokens.length; i++) { for (int i = 0; i < tokens.length; i++) {
try { try {

Loading…
Cancel
Save