Use Base64 implementation provided by Java 8
This commit is contained in:
+9
-6
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2016 the original author or authors.
|
||||
* Copyright 2002-2017 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -16,6 +16,7 @@
|
||||
package org.springframework.security.web.authentication.rememberme;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.Base64;
|
||||
|
||||
import javax.servlet.http.Cookie;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
@@ -33,7 +34,6 @@ import org.springframework.security.core.Authentication;
|
||||
import org.springframework.security.core.SpringSecurityMessageSource;
|
||||
import org.springframework.security.core.authority.mapping.GrantedAuthoritiesMapper;
|
||||
import org.springframework.security.core.authority.mapping.NullAuthoritiesMapper;
|
||||
import org.springframework.security.crypto.codec.Base64;
|
||||
import org.springframework.security.core.userdetails.UserDetails;
|
||||
import org.springframework.security.core.userdetails.UserDetailsChecker;
|
||||
import org.springframework.security.core.userdetails.UserDetailsService;
|
||||
@@ -50,7 +50,7 @@ import org.springframework.util.StringUtils;
|
||||
*
|
||||
* @author Luke Taylor
|
||||
* @author Rob Winch
|
||||
* @author Eddú Meléndez
|
||||
* @author Edd� Mel�ndez
|
||||
* @since 2.0
|
||||
*/
|
||||
public abstract class AbstractRememberMeServices implements RememberMeServices,
|
||||
@@ -215,13 +215,16 @@ public abstract class AbstractRememberMeServices implements RememberMeServices,
|
||||
cookieValue = cookieValue + "=";
|
||||
}
|
||||
|
||||
if (!Base64.isBase64(cookieValue.getBytes())) {
|
||||
try {
|
||||
Base64.getDecoder().decode(cookieValue.getBytes());
|
||||
}
|
||||
catch (IllegalArgumentException e) {
|
||||
throw new InvalidCookieException(
|
||||
"Cookie token was not Base64 encoded; value was '" + cookieValue
|
||||
+ "'");
|
||||
}
|
||||
|
||||
String cookieAsPlainText = new String(Base64.decode(cookieValue.getBytes()));
|
||||
String cookieAsPlainText = new String(Base64.getDecoder().decode(cookieValue.getBytes()));
|
||||
|
||||
String[] tokens = StringUtils.delimitedListToStringArray(cookieAsPlainText,
|
||||
DELIMITER);
|
||||
@@ -256,7 +259,7 @@ public abstract class AbstractRememberMeServices implements RememberMeServices,
|
||||
|
||||
String value = sb.toString();
|
||||
|
||||
sb = new StringBuilder(new String(Base64.encode(value.getBytes())));
|
||||
sb = new StringBuilder(new String(Base64.getEncoder().encode(value.getBytes())));
|
||||
|
||||
while (sb.charAt(sb.length() - 1) == '=') {
|
||||
sb.deleteCharAt(sb.length() - 1);
|
||||
|
||||
+4
-4
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2016 the original author or authors.
|
||||
* Copyright 2002-2017 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -17,6 +17,7 @@ package org.springframework.security.web.authentication.rememberme;
|
||||
|
||||
import java.security.SecureRandom;
|
||||
import java.util.Arrays;
|
||||
import java.util.Base64;
|
||||
import java.util.Date;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
@@ -24,7 +25,6 @@ import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.springframework.security.core.Authentication;
|
||||
import org.springframework.security.core.userdetails.UserDetailsService;
|
||||
import org.springframework.security.crypto.codec.Base64;
|
||||
import org.springframework.security.core.userdetails.UserDetails;
|
||||
import org.springframework.security.web.authentication.RememberMeServices;
|
||||
import org.springframework.util.Assert;
|
||||
@@ -185,13 +185,13 @@ public class PersistentTokenBasedRememberMeServices extends AbstractRememberMeSe
|
||||
protected String generateSeriesData() {
|
||||
byte[] newSeries = new byte[seriesLength];
|
||||
random.nextBytes(newSeries);
|
||||
return new String(Base64.encode(newSeries));
|
||||
return new String(Base64.getEncoder().encode(newSeries));
|
||||
}
|
||||
|
||||
protected String generateTokenData() {
|
||||
byte[] newToken = new byte[tokenLength];
|
||||
random.nextBytes(newToken);
|
||||
return new String(Base64.encode(newToken));
|
||||
return new String(Base64.getEncoder().encode(newToken));
|
||||
}
|
||||
|
||||
private void addCookie(PersistentRememberMeToken token, HttpServletRequest request,
|
||||
|
||||
+2
-2
@@ -17,6 +17,7 @@
|
||||
package org.springframework.security.web.authentication.www;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Base64;
|
||||
|
||||
import javax.servlet.FilterChain;
|
||||
import javax.servlet.ServletException;
|
||||
@@ -31,7 +32,6 @@ import org.springframework.security.authentication.UsernamePasswordAuthenticatio
|
||||
import org.springframework.security.core.Authentication;
|
||||
import org.springframework.security.core.AuthenticationException;
|
||||
import org.springframework.security.core.context.SecurityContextHolder;
|
||||
import org.springframework.security.crypto.codec.Base64;
|
||||
import org.springframework.security.web.AuthenticationEntryPoint;
|
||||
import org.springframework.security.web.authentication.NullRememberMeServices;
|
||||
import org.springframework.security.web.authentication.RememberMeServices;
|
||||
@@ -227,7 +227,7 @@ public class BasicAuthenticationFilter extends OncePerRequestFilter {
|
||||
byte[] base64Token = header.substring(6).getBytes("UTF-8");
|
||||
byte[] decoded;
|
||||
try {
|
||||
decoded = Base64.decode(base64Token);
|
||||
decoded = Base64.getDecoder().decode(base64Token);
|
||||
}
|
||||
catch (IllegalArgumentException e) {
|
||||
throw new BadCredentialsException(
|
||||
|
||||
+2
-2
@@ -17,6 +17,7 @@
|
||||
package org.springframework.security.web.authentication.www;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Base64;
|
||||
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
@@ -27,7 +28,6 @@ import org.apache.commons.logging.LogFactory;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.core.Ordered;
|
||||
import org.springframework.security.core.AuthenticationException;
|
||||
import org.springframework.security.crypto.codec.Base64;
|
||||
import org.springframework.security.web.AuthenticationEntryPoint;
|
||||
|
||||
/**
|
||||
@@ -91,7 +91,7 @@ public class DigestAuthenticationEntryPoint implements AuthenticationEntryPoint,
|
||||
long expiryTime = System.currentTimeMillis() + (nonceValiditySeconds * 1000);
|
||||
String signatureValue = DigestAuthUtils.md5Hex(expiryTime + ":" + key);
|
||||
String nonceValue = expiryTime + ":" + signatureValue;
|
||||
String nonceValueBase64 = new String(Base64.encode(nonceValue.getBytes()));
|
||||
String nonceValueBase64 = new String(Base64.getEncoder().encode(nonceValue.getBytes()));
|
||||
|
||||
// qop is quality of protection, as defined by RFC 2617.
|
||||
// we do not use opaque due to IE violation of RFC 2617 in not
|
||||
|
||||
+6
-3
@@ -17,6 +17,7 @@
|
||||
package org.springframework.security.web.authentication.www;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Base64;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.servlet.FilterChain;
|
||||
@@ -46,7 +47,6 @@ import org.springframework.security.core.userdetails.UserDetails;
|
||||
import org.springframework.security.core.userdetails.UserDetailsService;
|
||||
import org.springframework.security.core.userdetails.UsernameNotFoundException;
|
||||
import org.springframework.security.core.userdetails.cache.NullUserCache;
|
||||
import org.springframework.security.crypto.codec.Base64;
|
||||
import org.springframework.security.web.authentication.WebAuthenticationDetailsSource;
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.util.StringUtils;
|
||||
@@ -390,7 +390,10 @@ public class DigestAuthenticationFilter extends GenericFilterBean
|
||||
}
|
||||
|
||||
// Check nonce was Base64 encoded (as sent by DigestAuthenticationEntryPoint)
|
||||
if (!Base64.isBase64(this.nonce.getBytes())) {
|
||||
try {
|
||||
Base64.getDecoder().decode(this.nonce.getBytes());
|
||||
}
|
||||
catch (IllegalArgumentException e) {
|
||||
throw new BadCredentialsException(DigestAuthenticationFilter.this.messages
|
||||
.getMessage("DigestAuthenticationFilter.nonceEncoding",
|
||||
new Object[] { this.nonce },
|
||||
@@ -400,7 +403,7 @@ public class DigestAuthenticationFilter extends GenericFilterBean
|
||||
// Decode nonce from Base64
|
||||
// format of nonce is:
|
||||
// base64(expirationTime + ":" + md5Hex(expirationTime + ":" + key))
|
||||
String nonceAsPlainText = new String(Base64.decode(this.nonce.getBytes()));
|
||||
String nonceAsPlainText = new String(Base64.getDecoder().decode(this.nonce.getBytes()));
|
||||
String[] nonceTokens = StringUtils
|
||||
.delimitedListToStringArray(nonceAsPlainText, ":");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user