public Essence(LdapUserDetails copyMe) { setDn(copyMe.getDn()); setUsername(copyMe.getUsername()); setPassword(copyMe.getPassword()); setEnabled(copyMe.isEnabled()); setAccountNonExpired(copyMe.isAccountNonExpired()); setCredentialsNonExpired(copyMe.isCredentialsNonExpired()); setAccountNonLocked(copyMe.isAccountNonLocked()); setAuthorities(copyMe.getAuthorities()); }
@Test public void credentialsAreCleared() { LdapUserDetailsImpl.Essence mutableLdapUserDetails = new LdapUserDetailsImpl.Essence(); mutableLdapUserDetails.setDn("uid=username1,ou=people,dc=example,dc=com"); mutableLdapUserDetails.setUsername("username1"); mutableLdapUserDetails.setPassword("password"); LdapUserDetails ldapUserDetails = mutableLdapUserDetails.createUserDetails(); assertThat(ldapUserDetails).isInstanceOf(CredentialsContainer.class); ldapUserDetails.eraseCredentials(); assertThat(ldapUserDetails.getPassword()).isNull(); }
if (!(ldapUser.isAccountNonExpired() && ldapUser.isAccountNonLocked() && ldapUser.isCredentialsNonExpired() && ldapUser.isEnabled())) { throw new DisabledException(USER_NOT_FOUND_MSG); authorities = ldapUser.getAuthorities(); String us = ldapUser.getUsername();
/** * Get the principals of the logged in user, in this case the distinguished name. * * @return the distinguished name of the logged in user. */ public String getPrincipal() { Authentication authentication = SecurityContextHolder.getContext() .getAuthentication(); if (authentication == null) { log.warn("No Authentication object set in SecurityContext - returning empty String as Principal"); return ""; } Object principal = authentication.getPrincipal(); if (principal instanceof LdapUserDetails) { LdapUserDetails details = (LdapUserDetails) principal; return details.getDn(); } else if (authentication instanceof AnonymousAuthenticationToken) { if (log.isDebugEnabled()) { log.debug("Anonymous Authentication, returning empty String as Principal"); } return ""; } else { throw new IllegalArgumentException( "The principal property of the authentication object" + "needs to be an LdapUserDetails."); } }
public String getUsername() { return delegate.getUsername(); }
@Test public void testPasswordAttributeIsMappedCorrectly() throws Exception { LdapUserDetailsMapper mapper = new LdapUserDetailsMapper(); mapper.setPasswordAttributeName("myappsPassword"); BasicAttributes attrs = new BasicAttributes(); attrs.put(new BasicAttribute("myappsPassword", "mypassword".getBytes())); DirContextAdapter ctx = new DirContextAdapter(attrs, new DistinguishedName("cn=someName")); ctx.setAttributeValue("uid", "ani"); LdapUserDetails user = (LdapUserDetailsImpl) mapper.mapUserFromContext(ctx, "ani", AuthorityUtils.NO_AUTHORITIES); assertThat(user.getPassword()).isEqualTo("mypassword"); }
public boolean isEnabled() { return delegate.isEnabled(); }
public boolean isAccountNonExpired() { return delegate.isAccountNonExpired(); }
public Collection<GrantedAuthority> getAuthorities() { return delegate.getAuthorities(); }
public boolean isAccountNonLocked() { return delegate.isAccountNonLocked(); }
public boolean isCredentialsNonExpired() { return delegate.isCredentialsNonExpired(); }
private static LdapUserDetails mockLdapUserDetails() { userDetails = mock(LdapUserDetails.class); setupGeneralExpectations(userDetails); when(userDetails.getDn()).thenReturn(DN); return userDetails; }
private User getCurrentUser(Authentication auth, UserManager userManager) { User currentUser; if (auth.getPrincipal() instanceof LdapUserDetails) { LdapUserDetails ldapDetails = (LdapUserDetails) auth.getPrincipal(); String username = ldapDetails.getUsername(); currentUser = userManager.getUserByUsername(username); } else if (auth.getPrincipal() instanceof UserDetails) { currentUser = (User) auth.getPrincipal(); } else if (auth.getDetails() instanceof UserDetails) { currentUser = (User) auth.getDetails(); } else { throw new AccessDeniedException("User not properly authenticated."); } return currentUser; } }
public String getPassword() { return delegate.getPassword(); }
public ExtendedLdapUserImpl(LdapUserDetails details) { setDn(details.getDn()); setUsername(details.getUsername()); setPassword(details.getPassword()); setEnabled(details.isEnabled()); setAccountNonExpired(details.isAccountNonExpired()); setCredentialsNonExpired(details.isCredentialsNonExpired()); setAccountNonLocked(details.isAccountNonLocked()); setAuthorities(details.getAuthorities()); } public ExtendedLdapUserImpl(LdapUserDetails details, Map<String,String[]> attributes) {
return new AuthenticationResponse(userDetails.getDn(), credentials.getUsername(), expiration, issuer); } else { logger.warn(String.format("Unable to determine user DN for %s, using username.", authentication.getName()));
public Essence(LdapUserDetails copyMe) { setDn(copyMe.getDn()); setUsername(copyMe.getUsername()); setPassword(copyMe.getPassword()); setEnabled(copyMe.isEnabled()); setAccountNonExpired(copyMe.isAccountNonExpired()); setCredentialsNonExpired(copyMe.isCredentialsNonExpired()); setAccountNonLocked(copyMe.isAccountNonLocked()); setAuthorities(copyMe.getAuthorities()); }
@Test public void testShadowUserCreationDisabled() throws Exception { String dn = "cn="+userName+",ou=Users,dc=test,dc=com"; String origin = LDAP; LdapUserDetails ldapUserDetails = mock(LdapUserDetails.class); mockUserDetails(ldapUserDetails); when(ldapUserDetails.getDn()).thenReturn(dn); manager = new LdapLoginAuthenticationManager(null) { @Override protected boolean isAddNewShadowUser() { return false; } }; setupManager(); manager.setOrigin(origin); when(uaaUserDatabase.retrieveUserByName(eq(userName), eq(origin))).thenReturn(null); when(inputAuth.getPrincipal()).thenReturn(ldapUserDetails); try { manager.authenticate(inputAuth); fail("Expected authentication to fail with an exception."); } catch (AccountNotPreCreatedException ex) { assertThat(ex.getMessage(), containsString("user account must be pre-created")); } verify(applicationEventPublisher, times(0)).publishEvent(any()); }
public Essence(LdapUserDetails copyMe) { setDn(copyMe.getDn()); setUsername(copyMe.getUsername()); setPassword(copyMe.getPassword()); setEnabled(copyMe.isEnabled()); setAccountNonExpired(copyMe.isAccountNonExpired()); setCredentialsNonExpired(copyMe.isCredentialsNonExpired()); setAccountNonLocked(copyMe.isAccountNonLocked()); setAuthorities(copyMe.getAuthorities()); }
@Test public void testAuthenticateLdapUserDetailsPrincipal() throws Exception { String dn = "cn="+userName+",ou=Users,dc=test,dc=com"; String origin = LDAP; LdapUserDetails ldapUserDetails = mock(LdapUserDetails.class); mockUserDetails(ldapUserDetails); when(ldapUserDetails.getDn()).thenReturn(dn); manager = new LdapLoginAuthenticationManager(null); setupManager(); manager.setProviderProvisioning(null); manager.setOrigin(origin); when(user.getOrigin()).thenReturn(origin); when(uaaUserDatabase.retrieveUserByName(eq(userName), eq(origin))).thenReturn(user); when(inputAuth.getPrincipal()).thenReturn(ldapUserDetails); Authentication result = manager.authenticate(inputAuth); assertNotNull(result); assertEquals(UaaAuthentication.class, result.getClass()); UaaAuthentication uaaAuthentication = (UaaAuthentication)result; assertEquals(userName,uaaAuthentication.getPrincipal().getName()); assertEquals(origin,uaaAuthentication.getPrincipal().getOrigin()); assertEquals(userId, uaaAuthentication.getPrincipal().getId()); }