我有一个 Spring - 安全登录 - 在我输入我的用户/密码后,在此处输入:
@Override
public UserDetails mapUserFromContext(final DirContextOperations ctx,
final String username,
final Collection<? extends GrantedAuthority> authorities) {
LOGGER.debug("mapUserFromContext(username={})...", username);
for (GrantedAuthority authority : authorities) {
LOGGER.info("user: {} >> role: {}", username, authority.getAuthority());
}
LOGGER.debug("DONE >> mapUserFromContext(username={}).", username);
EFormUserDetails eFormUserDetails = new EFormUserDetails();
eFormUserDetails.setAuthorities(authorities);
eFormUserDetails.setPassword("");
eFormUserDetails.setUsername(username);
eFormUserDetails.setAccountNonExpired(true);
eFormUserDetails.setAccountNonLocked(true);
eFormUserDetails.setCredentialsNonExpired(true);
eFormUserDetails.setEnabled(true);
eFormUserDetails.setJudet(securityUtils.getLoggedInUserJudet(authorities, username));
LOGGER.debug("3.mapUserFromContext(after securityUtils.getLoggedInUserJudet).");
return eFormUserDetails;
}
我得到“3.mapUserFromContext(在 securityUtils.getLoggedInUserJudet 之后)”。在我的记录器中,但登录窗口重置,再次询问我用户/密码。在哪里放置记录器以查看返回 eFormUserDetails 后会发生什么?
我必须在我的开发环境中这么说。它工作正常,问题出现在生产中,他们为我的应用程序提供了代理和安全认证地址。
最佳答案
尝试进行调试
protected Authentication createSuccessfulAuthentication(UsernamePasswordAuthenticationToken authentication,
UserDetails user){
}
AbstractLdapAuthenticationProvider
的方法,这里只有成功登录后才会创建成功的身份验证对象。
关于java - Spring LDAP 安全性不断重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33561803/