1
0
mirror of synced 2026-08-06 02:08:01 +00:00

Fix unauthenitcated() and AnonymousAuthenticationToken

Previously if unauthenticated() experienced an AnonymousAuthenticationToken
it would not match.

This commit ensures that if the user is anonymous (not just null)
unauthenticated() works.

Fixes gh-3409
This commit is contained in:
Rob Winch
2016-04-14 17:31:08 -05:00
parent 8a28a27225
commit b2b53f7a81
2 changed files with 120 additions and 3 deletions
@@ -18,6 +18,8 @@ package org.springframework.security.test.web.servlet.response;
import java.util.ArrayList;
import java.util.Collection;
import org.springframework.security.authentication.AuthenticationTrustResolver;
import org.springframework.security.authentication.AuthenticationTrustResolverImpl;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
@@ -229,13 +231,18 @@ public final class SecurityMockMvcResultMatchers {
* @author Rob Winch
* @since 4.0
*/
private static final class UnAuthenticatedMatcher extends
AuthenticationMatcher<UnAuthenticatedMatcher> {
private static final class UnAuthenticatedMatcher
extends AuthenticationMatcher<UnAuthenticatedMatcher> {
private AuthenticationTrustResolver trustResolver = new AuthenticationTrustResolverImpl();
@Override
public void match(MvcResult result) throws Exception {
SecurityContext context = load(result);
assertEquals("", null, context.getAuthentication());
Authentication authentication = context.getAuthentication();
assertTrue("Expected anonymous Authentication got " + context,
authentication == null
|| this.trustResolver.isAnonymous(authentication));
}
private UnAuthenticatedMatcher() {