@Test public void testEqualsWhenEqual() { RememberMeAuthenticationToken token1 = new RememberMeAuthenticationToken("key", "Test", ROLES_12); RememberMeAuthenticationToken token2 = new RememberMeAuthenticationToken("key", "Test", ROLES_12); assertThat(token2).isEqualTo(token1); }
@Test public void testNotEqualsDueToKey() { RememberMeAuthenticationToken token1 = new RememberMeAuthenticationToken("key", "Test", ROLES_12); RememberMeAuthenticationToken token2 = new RememberMeAuthenticationToken( "DIFFERENT_KEY", "Test", ROLES_12); assertThat(token1.equals(token2)).isFalse(); }
@Test public void testNotEqualsDueToAbstractParentEqualsCheck() { RememberMeAuthenticationToken token1 = new RememberMeAuthenticationToken("key", "Test", ROLES_12); RememberMeAuthenticationToken token2 = new RememberMeAuthenticationToken("key", "DIFFERENT_PRINCIPAL", ROLES_12); assertThat(token1.equals(token2)).isFalse(); }
private Authentication createRememberMe() { return new RememberMeAuthenticationToken("ignored", "ignored", AuthorityUtils.createAuthorityList("ignored")); }
@Test(expected = IllegalArgumentException.class) public void testWithNullPrincipal() throws JsonProcessingException, JSONException { new RememberMeAuthenticationToken("key", null, Collections.<GrantedAuthority>emptyList()); }
@Test(expected = IllegalArgumentException.class) public void testWithNullKey() throws JsonProcessingException, JSONException { new RememberMeAuthenticationToken(null, "principal", Collections.<GrantedAuthority>emptyList()); }
@Test public void testNotEqualsDueToDifferentAuthenticationClass() { RememberMeAuthenticationToken token1 = new RememberMeAuthenticationToken("key", "Test", ROLES_12); UsernamePasswordAuthenticationToken token2 = new UsernamePasswordAuthenticationToken( "Test", "Password", ROLES_12); assertThat(token1.equals(token2)).isFalse(); }
@Test public void serializeRememberMeAuthenticationToken() throws JsonProcessingException, JSONException { RememberMeAuthenticationToken token = new RememberMeAuthenticationToken(REMEMBERME_KEY, "admin", Collections.singleton(new SimpleGrantedAuthority("ROLE_USER"))); String actualJson = mapper.writeValueAsString(token); JSONAssert.assertEquals(REMEMBERME_AUTH_STRINGPRINCIPAL_JSON, actualJson, true); }
@Override protected Authentication createSuccessfulAuthentication( HttpServletRequest request, UserDetails user) { if (user instanceof RememberMeUserDetails) user = ((RememberMeUserDetails) user).getWrappedObject(); Collection<GrantedAuthority> roles = new HashSet<GrantedAuthority>(); if (user.getAuthorities().contains(GeoServerRole.AUTHENTICATED_ROLE)) { roles.addAll(user.getAuthorities()); } else { roles = new HashSet<GrantedAuthority>(); roles.addAll(user.getAuthorities()); roles.add(GeoServerRole.AUTHENTICATED_ROLE); } RememberMeAuthenticationToken auth = new RememberMeAuthenticationToken(getKey(), user, roles); auth.setDetails(getAuthenticationDetailsSource().buildDetails(request)); return auth; } }
@Test public void testConstructorRejectsNulls() { try { new RememberMeAuthenticationToken(null, "Test", ROLES_12); fail("Should have thrown IllegalArgumentException"); } catch (IllegalArgumentException expected) { } try { new RememberMeAuthenticationToken("key", null, ROLES_12); fail("Should have thrown IllegalArgumentException"); } catch (IllegalArgumentException expected) { } try { List<GrantedAuthority> authsContainingNull = new ArrayList<>(); authsContainingNull.add(null); new RememberMeAuthenticationToken("key", "Test", authsContainingNull); fail("Should have thrown IllegalArgumentException"); } catch (IllegalArgumentException expected) { } }
@Test public void testSetAuthenticatedIgnored() { RememberMeAuthenticationToken token = new RememberMeAuthenticationToken("key", "Test", ROLES_12); assertThat(token.isAuthenticated()).isTrue(); token.setAuthenticated(false); assertThat(!token.isAuthenticated()).isTrue(); } }
@Test public void testNormalOperation() throws Exception { RememberMeAuthenticationProvider aap = new RememberMeAuthenticationProvider( "qwerty"); RememberMeAuthenticationToken token = new RememberMeAuthenticationToken("qwerty", "Test", AuthorityUtils.createAuthorityList("ROLE_ONE", "ROLE_TWO")); Authentication result = aap.authenticate(token); assertThat(token).isEqualTo(result); }
@Test public void testGetters() { RememberMeAuthenticationToken token = new RememberMeAuthenticationToken("key", "Test", ROLES_12); assertThat(token.getKeyHash()).isEqualTo("key".hashCode()); assertThat(token.getPrincipal()).isEqualTo("Test"); assertThat(token.getCredentials()).isEqualTo(""); assertThat(AuthorityUtils.authorityListToSet(token.getAuthorities())).contains("ROLE_ONE"); assertThat(AuthorityUtils.authorityListToSet(token.getAuthorities())).contains("ROLE_TWO"); assertThat(token.isAuthenticated()).isTrue(); }
@Test public void serializeRememberMeAuthenticationWithUserToken() throws JsonProcessingException, JSONException { User user = createDefaultUser(); RememberMeAuthenticationToken token = new RememberMeAuthenticationToken(REMEMBERME_KEY, user, user.getAuthorities()); String actualJson = mapper.writeValueAsString(token); JSONAssert.assertEquals(String.format(REMEMBERME_AUTH_JSON, "\"password\""), actualJson, true); }
@Test public void testCorrectOperationIsRememberMe() { AuthenticationTrustResolverImpl trustResolver = new AuthenticationTrustResolverImpl(); assertThat(trustResolver.isRememberMe(new RememberMeAuthenticationToken("ignored", "ignored", AuthorityUtils.createAuthorityList("ignored")))).isTrue(); assertThat(trustResolver.isAnonymous(new TestingAuthenticationToken("ignored", "ignored", AuthorityUtils.createAuthorityList("ignored")))).isFalse(); }
@Test public void serializeRememberMeAuthenticationWithUserTokenAfterEraseCredential() throws JsonProcessingException, JSONException { User user = createDefaultUser(); RememberMeAuthenticationToken token = new RememberMeAuthenticationToken(REMEMBERME_KEY, user, user.getAuthorities()); token.eraseCredentials(); String actualJson = mapper.writeValueAsString(token); JSONAssert.assertEquals(REMEMBERME_AUTH_JSON.replace(UserDeserializerTests.USER_PASSWORD, "null"), actualJson, true); }
@Test public void testDetectsAnInvalidKey() throws Exception { RememberMeAuthenticationProvider aap = new RememberMeAuthenticationProvider( "qwerty"); RememberMeAuthenticationToken token = new RememberMeAuthenticationToken( "WRONG_KEY", "Test", AuthorityUtils.createAuthorityList("ROLE_ONE", "ROLE_TWO")); try { aap.authenticate(token); fail("Should have thrown BadCredentialsException"); } catch (BadCredentialsException expected) { } }
/** * Creates the final <tt>Authentication</tt> object returned from the * <tt>autoLogin</tt> method. * <p> * By default it will create a <tt>RememberMeAuthenticationToken</tt> instance. * * @param request the original request. The configured * <tt>AuthenticationDetailsSource</tt> will use this to build the details property of * the returned object. * @param user the <tt>UserDetails</tt> loaded from the <tt>UserDetailsService</tt>. * This will be stored as the principal. * * @return the <tt>Authentication</tt> for the remember-me authenticated user */ protected Authentication createSuccessfulAuthentication(HttpServletRequest request, UserDetails user) { RememberMeAuthenticationToken auth = new RememberMeAuthenticationToken(key, user, authoritiesMapper.mapAuthorities(user.getAuthorities())); auth.setDetails(authenticationDetailsSource.buildDetails(request)); return auth; }
return; // no need to execute any other filters SecurityContextHolder.getContext().setAuthentication(new RememberMeAuthenticationToken(token.getId(), appUser, appUser.getAuthorities()));