@ -22,7 +22,6 @@ import jakarta.servlet.FilterChain;
@@ -22,7 +22,6 @@ import jakarta.servlet.FilterChain;
import jakarta.servlet.ServletRequest ;
import jakarta.servlet.ServletResponse ;
import jakarta.servlet.http.HttpServletResponse ;
import org.apache.commons.codec.binary.Base64 ;
import org.junit.jupiter.api.AfterEach ;
import org.junit.jupiter.api.BeforeEach ;
import org.junit.jupiter.api.Test ;
@ -38,6 +37,7 @@ import org.springframework.security.core.Authentication;
@@ -38,6 +37,7 @@ import org.springframework.security.core.Authentication;
import org.springframework.security.core.authority.AuthorityUtils ;
import org.springframework.security.core.context.SecurityContext ;
import org.springframework.security.core.context.SecurityContextHolder ;
import org.springframework.security.test.web.CodecTestUtils ;
import org.springframework.security.web.authentication.WebAuthenticationDetails ;
import org.springframework.security.web.context.SecurityContextRepository ;
import org.springframework.web.util.WebUtils ;
@ -104,7 +104,7 @@ public class BasicAuthenticationFilterTests {
@@ -104,7 +104,7 @@ public class BasicAuthenticationFilterTests {
public void testInvalidBasicAuthorizationTokenIsIgnored ( ) throws Exception {
String token = "NOT_A_VALID_TOKEN_AS_MISSING_COLON" ;
MockHttpServletRequest request = new MockHttpServletRequest ( ) ;
request . addHeader ( "Authorization" , "Basic " + new String ( Base64 . encodeBase64 ( token . getBytes ( ) ) ) ) ;
request . addHeader ( "Authorization" , "Basic " + CodecTestUtils . encodeBase64 ( token ) ) ;
request . setServletPath ( "/some_file.html" ) ;
request . setSession ( new MockHttpSession ( ) ) ;
final MockHttpServletResponse response = new MockHttpServletResponse ( ) ;
@ -134,7 +134,7 @@ public class BasicAuthenticationFilterTests {
@@ -134,7 +134,7 @@ public class BasicAuthenticationFilterTests {
public void testNormalOperation ( ) throws Exception {
String token = "rod:koala" ;
MockHttpServletRequest request = new MockHttpServletRequest ( ) ;
request . addHeader ( "Authorization" , "Basic " + new String ( Base64 . encodeBase64 ( token . getBytes ( ) ) ) ) ;
request . addHeader ( "Authorization" , "Basic " + CodecTestUtils . encodeBase64 ( token ) ) ;
request . setServletPath ( "/some_file.html" ) ;
// Test
assertThat ( SecurityContextHolder . getContext ( ) . getAuthentication ( ) ) . isNull ( ) ;
@ -150,7 +150,7 @@ public class BasicAuthenticationFilterTests {
@@ -150,7 +150,7 @@ public class BasicAuthenticationFilterTests {
public void doFilterWhenSchemeLowercaseThenCaseInsensitveMatchWorks ( ) throws Exception {
String token = "rod:koala" ;
MockHttpServletRequest request = new MockHttpServletRequest ( ) ;
request . addHeader ( "Authorization" , "basic " + new String ( Base64 . encodeBase64 ( token . getBytes ( ) ) ) ) ;
request . addHeader ( "Authorization" , "basic " + CodecTestUtils . encodeBase64 ( token ) ) ;
request . setServletPath ( "/some_file.html" ) ;
// Test
assertThat ( SecurityContextHolder . getContext ( ) . getAuthentication ( ) ) . isNull ( ) ;
@ -165,7 +165,7 @@ public class BasicAuthenticationFilterTests {
@@ -165,7 +165,7 @@ public class BasicAuthenticationFilterTests {
public void doFilterWhenSchemeMixedCaseThenCaseInsensitiveMatchWorks ( ) throws Exception {
String token = "rod:koala" ;
MockHttpServletRequest request = new MockHttpServletRequest ( ) ;
request . addHeader ( "Authorization" , "BaSiC " + new String ( Base64 . encodeBase64 ( token . getBytes ( ) ) ) ) ;
request . addHeader ( "Authorization" , "BaSiC " + CodecTestUtils . encodeBase64 ( token ) ) ;
request . setServletPath ( "/some_file.html" ) ;
assertThat ( SecurityContextHolder . getContext ( ) . getAuthentication ( ) ) . isNull ( ) ;
FilterChain chain = mock ( FilterChain . class ) ;
@ -200,7 +200,7 @@ public class BasicAuthenticationFilterTests {
@@ -200,7 +200,7 @@ public class BasicAuthenticationFilterTests {
public void testSuccessLoginThenFailureLoginResultsInSessionLosingToken ( ) throws Exception {
String token = "rod:koala" ;
MockHttpServletRequest request = new MockHttpServletRequest ( ) ;
request . addHeader ( "Authorization" , "Basic " + new String ( Base64 . encodeBase64 ( token . getBytes ( ) ) ) ) ;
request . addHeader ( "Authorization" , "Basic " + CodecTestUtils . encodeBase64 ( token ) ) ;
request . setServletPath ( "/some_file.html" ) ;
final MockHttpServletResponse response1 = new MockHttpServletResponse ( ) ;
FilterChain chain = mock ( FilterChain . class ) ;
@ -212,7 +212,7 @@ public class BasicAuthenticationFilterTests {
@@ -212,7 +212,7 @@ public class BasicAuthenticationFilterTests {
// NOW PERFORM FAILED AUTHENTICATION
token = "otherUser:WRONG_PASSWORD" ;
request = new MockHttpServletRequest ( ) ;
request . addHeader ( "Authorization" , "Basic " + new String ( Base64 . encodeBase64 ( token . getBytes ( ) ) ) ) ;
request . addHeader ( "Authorization" , "Basic " + CodecTestUtils . encodeBase64 ( token ) ) ;
final MockHttpServletResponse response2 = new MockHttpServletResponse ( ) ;
chain = mock ( FilterChain . class ) ;
this . filter . doFilter ( request , response2 , chain ) ;
@ -228,7 +228,7 @@ public class BasicAuthenticationFilterTests {
@@ -228,7 +228,7 @@ public class BasicAuthenticationFilterTests {
public void testWrongPasswordContinuesFilterChainIfIgnoreFailureIsTrue ( ) throws Exception {
String token = "rod:WRONG_PASSWORD" ;
MockHttpServletRequest request = new MockHttpServletRequest ( ) ;
request . addHeader ( "Authorization" , "Basic " + new String ( Base64 . encodeBase64 ( token . getBytes ( ) ) ) ) ;
request . addHeader ( "Authorization" , "Basic " + CodecTestUtils . encodeBase64 ( token ) ) ;
request . setServletPath ( "/some_file.html" ) ;
request . setSession ( new MockHttpSession ( ) ) ;
this . filter = new BasicAuthenticationFilter ( this . manager ) ;
@ -244,7 +244,7 @@ public class BasicAuthenticationFilterTests {
@@ -244,7 +244,7 @@ public class BasicAuthenticationFilterTests {
public void testWrongPasswordReturnsForbiddenIfIgnoreFailureIsFalse ( ) throws Exception {
String token = "rod:WRONG_PASSWORD" ;
MockHttpServletRequest request = new MockHttpServletRequest ( ) ;
request . addHeader ( "Authorization" , "Basic " + new String ( Base64 . encodeBase64 ( token . getBytes ( ) ) ) ) ;
request . addHeader ( "Authorization" , "Basic " + CodecTestUtils . encodeBase64 ( token ) ) ;
request . setServletPath ( "/some_file.html" ) ;
request . setSession ( new MockHttpSession ( ) ) ;
assertThat ( this . filter . isIgnoreFailure ( ) ) . isFalse ( ) ;
@ -262,7 +262,7 @@ public class BasicAuthenticationFilterTests {
@@ -262,7 +262,7 @@ public class BasicAuthenticationFilterTests {
public void skippedOnErrorDispatch ( ) throws Exception {
String token = "bad:credentials" ;
MockHttpServletRequest request = new MockHttpServletRequest ( ) ;
request . addHeader ( "Authorization" , "Basic " + new String ( Base64 . encodeBase64 ( token . getBytes ( ) ) ) ) ;
request . addHeader ( "Authorization" , "Basic " + CodecTestUtils . encodeBase64 ( token ) ) ;
request . setServletPath ( "/some_file.html" ) ;
request . setAttribute ( WebUtils . ERROR_REQUEST_URI_ATTRIBUTE , "/error" ) ;
MockHttpServletResponse response = new MockHttpServletResponse ( ) ;
@ -286,7 +286,7 @@ public class BasicAuthenticationFilterTests {
@@ -286,7 +286,7 @@ public class BasicAuthenticationFilterTests {
String token = "rod:äöü" ;
MockHttpServletRequest request = new MockHttpServletRequest ( ) ;
request . addHeader ( "Authorization" ,
"Basic " + new String ( Base64 . encodeBase64 ( token . getBytes ( StandardCharsets . UTF_8 ) ) ) ) ;
"Basic " + CodecTestUtils . encodeBase64 ( token . getBytes ( StandardCharsets . UTF_8 ) ) ) ;
request . setServletPath ( "/some_file.html" ) ;
MockHttpServletResponse response = new MockHttpServletResponse ( ) ;
// Test
@ -315,7 +315,7 @@ public class BasicAuthenticationFilterTests {
@@ -315,7 +315,7 @@ public class BasicAuthenticationFilterTests {
String token = "rod:äöü" ;
MockHttpServletRequest request = new MockHttpServletRequest ( ) ;
request . addHeader ( "Authorization" ,
"Basic " + new String ( Base64 . encodeBase64 ( token . getBytes ( StandardCharsets . ISO_8859_1 ) ) ) ) ;
"Basic " + CodecTestUtils . encodeBase64 ( token . getBytes ( StandardCharsets . ISO_8859_1 ) ) ) ;
request . setServletPath ( "/some_file.html" ) ;
MockHttpServletResponse response = new MockHttpServletResponse ( ) ;
// Test
@ -344,7 +344,7 @@ public class BasicAuthenticationFilterTests {
@@ -344,7 +344,7 @@ public class BasicAuthenticationFilterTests {
String token = "rod:äöü" ;
MockHttpServletRequest request = new MockHttpServletRequest ( ) ;
request . addHeader ( "Authorization" ,
"Basic " + new String ( Base64 . encodeBase64 ( token . getBytes ( StandardCharsets . UTF_8 ) ) ) ) ;
"Basic " + CodecTestUtils . encodeBase64 ( token . getBytes ( StandardCharsets . UTF_8 ) ) ) ;
request . setServletPath ( "/some_file.html" ) ;
MockHttpServletResponse response = new MockHttpServletResponse ( ) ;
// Test
@ -377,7 +377,7 @@ public class BasicAuthenticationFilterTests {
@@ -377,7 +377,7 @@ public class BasicAuthenticationFilterTests {
this . filter . setSecurityContextRepository ( securityContextRepository ) ;
String token = "rod:koala" ;
MockHttpServletRequest request = new MockHttpServletRequest ( ) ;
request . addHeader ( "Authorization" , "Basic " + new String ( Base64 . encodeBase64 ( token . getBytes ( ) ) ) ) ;
request . addHeader ( "Authorization" , "Basic " + CodecTestUtils . encodeBase64 ( token ) ) ;
request . setServletPath ( "/some_file.html" ) ;
MockHttpServletResponse response = new MockHttpServletResponse ( ) ;
// Test