public UserDetails loadUserByUsername(String username) { UserDetails user = userCache.getUserFromCache(username); if (user == null) { user = delegate.loadUserByUsername(username); } Assert.notNull(user, () -> "UserDetailsService " + delegate + " returned null for username " + username + ". " + "This is an interface contract violation"); userCache.putUserInCache(user); return user; } }
public void addUserToGroup(final String username, final String groupName) { logger.debug("Adding user '" + username + "' to group '" + groupName + "'"); Assert.hasText(username, "username should have text"); Assert.hasText(groupName, "groupName should have text"); final int id = findGroupId(groupName); getJdbcTemplate().update(insertGroupMemberSql, new PreparedStatementSetter() { public void setValues(PreparedStatement ps) throws SQLException { ps.setInt(1, id); ps.setString(2, username); } }); userCache.removeUserFromCache(username); }
@Override public CocosUser changePassword(String oldPassword, String newPassword) { String username = SecurityContextHolder.getContext().getAuthentication().getName(); Authentication authentication = authenticate(new UsernamePasswordAuthenticationToken(username, oldPassword)); CocosUser cocosUser = (CocosUser) authentication.getPrincipal(); setPassword(newPassword, cocosUser); getUserCache().putUserInCache(cocosUser); return cocosUser; }
@Test public void cacheIsInjectedIntoAuthenticationProvider() { setContext("<authentication-manager>" + " <authentication-provider>" + " <jdbc-user-service cache-ref='userCache' data-source-ref='dataSource'/>" + " </authentication-provider>" + "</authentication-manager>" + DATA_SOURCE + USER_CACHE_XML); ProviderManager mgr = (ProviderManager) appContext .getBean(BeanIds.AUTHENTICATION_MANAGER); DaoAuthenticationProvider provider = (DaoAuthenticationProvider) mgr .getProviders().get(0); assertThat(appContext.getBean("userCache")).isSameAs(provider.getUserCache()); provider.authenticate(new UsernamePasswordAuthenticationToken("rod", "koala")); assertThat(provider .getUserCache().getUserFromCache("rod")).isNotNull().withFailMessage("Cache should contain user after authentication"); }
@Override public void unlockUser(Long userId) { CocosUser user = fetchUser(userId); user.setAccountNonLocked(true); getUserCache().putUserInCache(user); }
UserDetails user = this.userCache.getUserFromCache(username); this.userCache.putUserInCache(user);
@Override public void lockUser(Long userId) { CocosUser user = fetchUser(userId); user.setAccountNonLocked(false); getUserCache().putUserInCache(user); }
public void removeUserFromGroup(final String username, final String groupName) { logger.debug("Removing user '" + username + "' to group '" + groupName + "'"); Assert.hasText(username, "username should have text"); Assert.hasText(groupName, "groupName should have text"); final int id = findGroupId(groupName); getJdbcTemplate().update(deleteGroupMemberSql, new PreparedStatementSetter() { public void setValues(PreparedStatement ps) throws SQLException { ps.setInt(1, id); ps.setString(2, username); } }); userCache.removeUserFromCache(username); }
UserDetails user = this.userCache.getUserFromCache(username); this.userCache.putUserInCache(user);
@Override public void disableUser(Long userId) { CocosUser user = repository.findOne(userId); user.setEnabled(false); getUserCache().putUserInCache(user); }
public void addUserToGroup(final String username, final String groupName) { logger.debug("Adding user '" + username + "' to group '" + groupName + "'"); Assert.hasText(username, "username should have text"); Assert.hasText(groupName, "groupName should have text"); final int id = findGroupId(groupName); getJdbcTemplate().update(insertGroupMemberSql, new PreparedStatementSetter() { public void setValues(PreparedStatement ps) throws SQLException { ps.setInt(1, id); ps.setString(2, username); } }); userCache.removeUserFromCache(username); }
public UserDetails loadUserByUsername(String username) { UserDetails user = userCache.getUserFromCache(username); if (user == null) { user = delegate.loadUserByUsername(username); } Assert.notNull(user, () -> "UserDetailsService " + delegate + " returned null for username " + username + ". " + "This is an interface contract violation"); userCache.putUserInCache(user); return user; } }
@Override public void enableUser(Long userId) { CocosUser user = repository.findOne(userId); user.setEnabled(true); getUserCache().putUserInCache(user); }
public void removeUserFromGroup(final String username, final String groupName) { logger.debug("Removing user '" + username + "' to group '" + groupName + "'"); Assert.hasText(username, "username should have text"); Assert.hasText(groupName, "groupName should have text"); final int id = findGroupId(groupName); getJdbcTemplate().update(deleteGroupMemberSql, new PreparedStatementSetter() { public void setValues(PreparedStatement ps) throws SQLException { ps.setInt(1, id); ps.setString(2, username); } }); userCache.removeUserFromCache(username); }
public UserDetails loadUserByUsername(String username) { UserDetails user = userCache.getUserFromCache(username); if (user == null) { user = delegate.loadUserByUsername(username); } Assert.notNull(user, "UserDetailsService " + delegate + " returned null for username " + username + ". " + "This is an interface contract violation"); userCache.putUserInCache(user); return user; } }
@Override public void updateUserProperties(CocosUser updatedUser) { CocosUser user = fetchUser(updatedUser.getId()); user.setFilesystemQuota(updatedUser.getFilesystemQuota()); user.setAccountNonLocked(updatedUser.isAccountNonLocked()); List<CocosGrantedAuthority> authorities = new LinkedList<CocosGrantedAuthority>(); for (CocosGrantedAuthority grantedAuthority : updatedUser.getAuthorities()) { grantedAuthority.setUser(user); authorities.add(grantedAuthority); } user.setAuthorities(authorities); getUserCache().putUserInCache(user); }
public void changePassword(String oldPassword, String newPassword) throws AuthenticationException { Authentication currentUser = SecurityContextHolder.getContext() .getAuthentication(); if (currentUser == null) { // This would indicate bad coding somewhere throw new AccessDeniedException( "Can't change password as no Authentication object found in context " + "for current user."); } String username = currentUser.getName(); // If an authentication manager has been set, re-authenticate the user with the // supplied password. if (authenticationManager != null) { logger.debug("Reauthenticating user '" + username + "' for password change request."); authenticationManager.authenticate(new UsernamePasswordAuthenticationToken( username, oldPassword)); } else { logger.debug("No authentication manager set. Password won't be re-checked."); } logger.debug("Changing password for user '" + username + "'"); getJdbcTemplate().update(changePasswordSql, newPassword, username); SecurityContextHolder.getContext().setAuthentication( createNewAuthentication(currentUser, newPassword)); userCache.removeUserFromCache(username); }
public UserDetails loadUserByUsername(String username) { UserDetails user = userCache.getUserFromCache(username); if (user == null) { user = delegate.loadUserByUsername(username); } Assert.notNull(user, () -> "UserDetailsService " + delegate + " returned null for username " + username + ". " + "This is an interface contract violation"); userCache.putUserInCache(user); return user; } }
@SuppressWarnings("deprecation") private void setPassword(String newPassword, CocosUser cocosUser) { Object salt = getSaltSource() != null ? getSaltSource().getSalt(cocosUser) : null; cocosUser.setPassword(getPasswordEncoder().encodePassword(newPassword, salt)); getUserCache().putUserInCache(cocosUser); }
public void deleteUser(String username) { if (getEnableAuthorities()) { deleteUserAuthorities(username); } getJdbcTemplate().update(deleteUserSql, username); userCache.removeUserFromCache(username); }