@Override public Collection<? extends GrantedAuthority> getAuthorities() { return user.getAuthorities(); }
private Map<String, Boolean> createRoleMap(UserDetails userDetails) { Map<String, Boolean> roles = new HashMap<String, Boolean>(); for (GrantedAuthority authority : userDetails.getAuthorities()) { roles.put(authority.getAuthority(), Boolean.TRUE); } return roles; } }
public Collection<? extends GrantedAuthority> getGrantedAuthorities( DirContextOperations userData, String username) { return userDetailsService.loadUserByUsername(username).getAuthorities(); } }
private void insertUserAuthorities(UserDetails user) { for (GrantedAuthority auth : user.getAuthorities()) { getJdbcTemplate().update(createAuthoritySql, user.getUsername(), auth.getAuthority()); } }
protected Authentication createNewAuthentication(Authentication currentAuth, String newPassword) { UserDetails user = loadUserByUsername(currentAuth.getName()); UsernamePasswordAuthenticationToken newAuthentication = new UsernamePasswordAuthenticationToken( user, null, user.getAuthorities()); newAuthentication.setDetails(currentAuth.getDetails()); return newAuthentication; }
private Authentication authenticateJoe() { UsernamePasswordAuthenticationToken auth = new UsernamePasswordAuthenticationToken( "joe", "password", joe.getAuthorities()); SecurityContextHolder.getContext().setAuthentication(auth); return auth; }
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { UserDetails user = users.get(username.toLowerCase()); if (user == null) { throw new UsernameNotFoundException(username); } return new User(user.getUsername(), user.getPassword(), user.isEnabled(), user.isAccountNonExpired(), user.isCredentialsNonExpired(), user.isAccountNonLocked(), user.getAuthorities()); }
@Test public void authoritiesWithAListOfGrantedAuthorityWorks() { SimpleGrantedAuthority authority = new SimpleGrantedAuthority("ROLE_USER"); UserDetails userDetails = new UserDetailsManagerConfigurer<AuthenticationManagerBuilder, InMemoryUserDetailsManagerConfigurer<AuthenticationManagerBuilder>>(userDetailsManager) .withUser("user") .password("password") .authorities(Arrays.asList(authority)) .build(); assertThat(userDetails.getAuthorities().stream().findFirst().get()).isEqualTo(authority); } }
@Test public void testRolePrefixWorks() throws Exception { JdbcDaoImpl dao = makePopulatedJdbcDaoWithRolePrefix(); assertThat(dao.getRolePrefix()).isEqualTo("ARBITRARY_PREFIX_"); UserDetails user = dao.loadUserByUsername("rod"); assertThat(user.getUsername()).isEqualTo("rod"); assertThat(user.getAuthorities()).hasSize(2); assertThat(AuthorityUtils.authorityListToSet(user.getAuthorities())) .contains("ARBITRARY_PREFIX_ROLE_TELLER"); assertThat(AuthorityUtils.authorityListToSet(user.getAuthorities())) .contains("ARBITRARY_PREFIX_ROLE_SUPERVISOR"); }
@Test public void authoritiesWithStringAuthorityWorks() { String authority = "ROLE_USER"; UserDetails userDetails = new UserDetailsManagerConfigurer<AuthenticationManagerBuilder, InMemoryUserDetailsManagerConfigurer<AuthenticationManagerBuilder>>(userDetailsManager) .withUser("user") .password("password") .authorities(authority) .build(); assertThat(userDetails.getAuthorities().stream().findFirst().get().getAuthority()).isEqualTo(authority); }
@Test public void authoritiesWithGrantedAuthorityWorks() { SimpleGrantedAuthority authority = new SimpleGrantedAuthority("ROLE_USER"); UserDetails userDetails = new UserDetailsManagerConfigurer<AuthenticationManagerBuilder, InMemoryUserDetailsManagerConfigurer<AuthenticationManagerBuilder>>(userDetailsManager) .withUser("user") .password("password") .authorities(authority) .build(); assertThat(userDetails.getAuthorities().stream().findFirst().get()).isEqualTo(authority); }
@Test public void testCheckDaoOnlyReturnsGrantedAuthoritiesGrantedToUser() throws Exception { JdbcDaoImpl dao = makePopulatedJdbcDao(); UserDetails user = dao.loadUserByUsername("scott"); assertThat(user.getAuthorities()).hasSize(1); assertThat(AuthorityUtils.authorityListToSet(user.getAuthorities())) .contains("ROLE_TELLER"); }
@Test public void testCheckDaoAccessUserSuccess() throws Exception { JdbcDaoImpl dao = makePopulatedJdbcDao(); UserDetails user = dao.loadUserByUsername("rod"); assertThat(user.getUsername()).isEqualTo("rod"); assertThat(user.getPassword()).isEqualTo("koala"); assertThat(user.isEnabled()).isTrue(); assertThat(AuthorityUtils.authorityListToSet(user.getAuthorities())) .contains("ROLE_TELLER"); assertThat(AuthorityUtils.authorityListToSet(user.getAuthorities())) .contains("ROLE_SUPERVISOR"); }
@Test public void withUserDetailsWhenAllDisabled() throws Exception { User expected = new User("rob", "pass", false, false, false, false, ROLE_12); UserDetails actual = User.withUserDetails(expected).build(); assertThat(actual.getUsername()).isEqualTo(expected.getUsername()); assertThat(actual.getPassword()).isEqualTo(expected.getPassword()); assertThat(actual.getAuthorities()).isEqualTo(expected.getAuthorities()); assertThat(actual.isAccountNonExpired()).isEqualTo(expected.isAccountNonExpired()); assertThat(actual.isAccountNonLocked()).isEqualTo(expected.isAccountNonLocked()); assertThat(actual.isCredentialsNonExpired()).isEqualTo(expected.isCredentialsNonExpired()); assertThat(actual.isEnabled()).isEqualTo(expected.isEnabled()); }
@Test public void withUserDetailsWhenAllEnabled() throws Exception { User expected = new User("rob", "pass", true, true, true, true, ROLE_12); UserDetails actual = User.withUserDetails(expected).build(); assertThat(actual.getUsername()).isEqualTo(expected.getUsername()); assertThat(actual.getPassword()).isEqualTo(expected.getPassword()); assertThat(actual.getAuthorities()).isEqualTo(expected.getAuthorities()); assertThat(actual.isAccountNonExpired()).isEqualTo(expected.isAccountNonExpired()); assertThat(actual.isAccountNonLocked()).isEqualTo(expected.isAccountNonLocked()); assertThat(actual.isCredentialsNonExpired()).isEqualTo(expected.isCredentialsNonExpired()); assertThat(actual.isEnabled()).isEqualTo(expected.isEnabled()); }
@Test public void testGroupAuthoritiesAreLoadedCorrectly() throws Exception { JdbcDaoImpl dao = makePopulatedJdbcDao(); dao.setEnableAuthorities(false); dao.setEnableGroups(true); UserDetails jerry = dao.loadUserByUsername("jerry"); assertThat(jerry.getAuthorities()).hasSize(3); }
@Test public void testDuplicateGroupAuthoritiesAreRemoved() throws Exception { JdbcDaoImpl dao = makePopulatedJdbcDao(); dao.setEnableAuthorities(false); dao.setEnableGroups(true); // Tom has roles A, B, C and B, C duplicates UserDetails tom = dao.loadUserByUsername("tom"); assertThat(tom.getAuthorities()).hasSize(3); }
@Test public void rolePrefixIsUsedWhenSet() { setContext("<jdbc-user-service id='myUserService' role-prefix='PREFIX_' data-source-ref='dataSource'/>" + DATA_SOURCE); JdbcUserDetailsManager mgr = (JdbcUserDetailsManager) appContext .getBean("myUserService"); UserDetails rod = mgr.loadUserByUsername("rod"); assertThat(AuthorityUtils.authorityListToSet(rod.getAuthorities())) .contains("PREFIX_ROLE_SUPERVISOR"); }
public static UserBuilder withUserDetails(UserDetails userDetails) { return withUsername(userDetails.getUsername()) .password(userDetails.getPassword()) .accountExpired(!userDetails.isAccountNonExpired()) .accountLocked(!userDetails.isAccountNonLocked()) .authorities(userDetails.getAuthorities()) .credentialsExpired(!userDetails.isCredentialsNonExpired()) .disabled(!userDetails.isEnabled()); }
@Test public void nullPopulatorConstructorReturnsEmptyAuthoritiesList() throws Exception { DirContextAdapter userData = new DirContextAdapter(new DistinguishedName( "uid=joe")); LdapUserDetailsService service = new LdapUserDetailsService(new MockUserSearch( userData)); UserDetails user = service.loadUserByUsername("doesntmatterwegetjoeanyway"); assertThat(user.getAuthorities()).isEmpty(); }