Search in sources :

Example 26 with User

use of org.springframework.security.core.userdetails.User in project spring-security by spring-projects.

the class UserDeserializer method deserialize.

/**
	 * This method will create {@link User} object. It will ensure successful object creation even if password key is null in
	 * serialized json, because credentials may be removed from the {@link User} by invoking {@link User#eraseCredentials()}.
	 * In that case there won't be any password key in serialized json.
	 *
	 * @param jp the JsonParser
	 * @param ctxt the DeserializationContext
	 * @return the user
	 * @throws IOException if a exception during IO occurs
	 * @throws JsonProcessingException if an error during JSON processing occurs
	 */
@Override
public User deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException {
    ObjectMapper mapper = (ObjectMapper) jp.getCodec();
    JsonNode jsonNode = mapper.readTree(jp);
    Set<GrantedAuthority> authorities = mapper.convertValue(jsonNode.get("authorities"), new TypeReference<Set<SimpleGrantedAuthority>>() {
    });
    JsonNode password = readJsonNode(jsonNode, "password");
    User result = new User(readJsonNode(jsonNode, "username").asText(), password.asText(""), readJsonNode(jsonNode, "enabled").asBoolean(), readJsonNode(jsonNode, "accountNonExpired").asBoolean(), readJsonNode(jsonNode, "credentialsNonExpired").asBoolean(), readJsonNode(jsonNode, "accountNonLocked").asBoolean(), authorities);
    if (password.asText(null) == null) {
        result.eraseCredentials();
    }
    return result;
}
Also used : Set(java.util.Set) User(org.springframework.security.core.userdetails.User) SimpleGrantedAuthority(org.springframework.security.core.authority.SimpleGrantedAuthority) GrantedAuthority(org.springframework.security.core.GrantedAuthority) JsonNode(com.fasterxml.jackson.databind.JsonNode) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper)

Example 27 with User

use of org.springframework.security.core.userdetails.User in project spring-security by spring-projects.

the class UserDeserializerTests method deserializeUserWithNullPasswordNoAuthorityTest.

@Test
public void deserializeUserWithNullPasswordNoAuthorityTest() throws Exception {
    String userJsonWithoutPasswordString = removeNode(userWithNoAuthoritiesJson(), mapper, "password");
    User user = mapper.readValue(userJsonWithoutPasswordString, User.class);
    assertThat(user).isNotNull();
    assertThat(user.getUsername()).isEqualTo("admin");
    assertThat(user.getPassword()).isNull();
    assertThat(user.getAuthorities()).isEmpty();
    assertThat(user.isEnabled()).isEqualTo(true);
}
Also used : User(org.springframework.security.core.userdetails.User) Test(org.junit.Test)

Example 28 with User

use of org.springframework.security.core.userdetails.User in project spring-security by spring-projects.

the class UsernamePasswordAuthenticationTokenMixinTests method deserializeAuthenticatedUsernamePasswordAuthenticationTokenWithUserTest.

@Test
public void deserializeAuthenticatedUsernamePasswordAuthenticationTokenWithUserTest() throws IOException {
    UsernamePasswordAuthenticationToken token = mapper.readValue(AUTHENTICATED_JSON, UsernamePasswordAuthenticationToken.class);
    assertThat(token).isNotNull();
    assertThat(token.getPrincipal()).isNotNull().isInstanceOf(User.class);
    assertThat(((User) token.getPrincipal()).getAuthorities()).isNotNull().hasSize(1).contains(new SimpleGrantedAuthority("ROLE_USER"));
    assertThat(token.isAuthenticated()).isEqualTo(true);
    assertThat(token.getAuthorities()).hasSize(1).contains(new SimpleGrantedAuthority("ROLE_USER"));
}
Also used : SimpleGrantedAuthority(org.springframework.security.core.authority.SimpleGrantedAuthority) User(org.springframework.security.core.userdetails.User) UsernamePasswordAuthenticationToken(org.springframework.security.authentication.UsernamePasswordAuthenticationToken) Test(org.junit.Test)

Example 29 with User

use of org.springframework.security.core.userdetails.User in project spring-security by spring-projects.

the class JdbcUserDetailsManagerTests method updateUserChangesDataCorrectlyAndClearsCache.

@Test
public void updateUserChangesDataCorrectlyAndClearsCache() {
    insertJoe();
    User newJoe = new User("joe", "newpassword", false, true, true, true, AuthorityUtils.createAuthorityList(new String[] { "D", "F", "E" }));
    manager.updateUser(newJoe);
    UserDetails joe = manager.loadUserByUsername("joe");
    assertThat(joe).isEqualTo(newJoe);
    assertThat(cache.getUserMap().containsKey("joe")).isFalse();
}
Also used : User(org.springframework.security.core.userdetails.User) UserDetails(org.springframework.security.core.userdetails.UserDetails) Test(org.junit.Test)

Example 30 with User

use of org.springframework.security.core.userdetails.User in project spring-security by spring-projects.

the class AnonymousAuthenticationTokenMixinTests method serializeAnonymousAuthenticationTokenMixinAfterEraseCredentialTest.

@Test
public void serializeAnonymousAuthenticationTokenMixinAfterEraseCredentialTest() throws JsonProcessingException, JSONException {
    User user = createDefaultUser();
    AnonymousAuthenticationToken token = new AnonymousAuthenticationToken(HASH_KEY, user, user.getAuthorities());
    token.eraseCredentials();
    String actualJson = mapper.writeValueAsString(token);
    JSONAssert.assertEquals(ANONYMOUS_JSON.replace(UserDeserializerTests.USER_PASSWORD, "null"), actualJson, true);
}
Also used : User(org.springframework.security.core.userdetails.User) AnonymousAuthenticationToken(org.springframework.security.authentication.AnonymousAuthenticationToken) Test(org.junit.Test)

Aggregations

User (org.springframework.security.core.userdetails.User)54 Test (org.junit.Test)30 UsernamePasswordAuthenticationToken (org.springframework.security.authentication.UsernamePasswordAuthenticationToken)16 SimpleGrantedAuthority (org.springframework.security.core.authority.SimpleGrantedAuthority)15 UserDetails (org.springframework.security.core.userdetails.UserDetails)14 Authentication (org.springframework.security.core.Authentication)13 GrantedAuthority (org.springframework.security.core.GrantedAuthority)10 MockHttpServletRequest (org.springframework.mock.web.MockHttpServletRequest)6 ArrayList (java.util.ArrayList)5 UsernameNotFoundException (org.springframework.security.core.userdetails.UsernameNotFoundException)4 Before (org.junit.Before)3 MockHttpServletResponse (org.springframework.mock.web.MockHttpServletResponse)3 SecurityContext (org.springframework.security.core.context.SecurityContext)3 FilterChain (javax.servlet.FilterChain)2 HttpServletRequest (javax.servlet.http.HttpServletRequest)2 HttpServletResponse (javax.servlet.http.HttpServletResponse)2 Assertion (org.jasig.cas.client.validation.Assertion)2 AssertionImpl (org.jasig.cas.client.validation.AssertionImpl)2 DirContextOperations (org.springframework.ldap.core.DirContextOperations)2 AuthenticationManager (org.springframework.security.authentication.AuthenticationManager)2