我有一个Spring - Security登录名 - 在我输入我的用户/通行证后,进入此处:
@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;
}
我得到&#34; 3.mapUserFromContext(在securityUtils.getLoggedInUserJudet之后)。&#34;在我的记录器中,但登录窗口重置再次询问用户/通过。在哪里放一个记录器,看看它返回eFormUserDetails后会发生什么?
我必须在我的开发环境中说。它工作正常,问题出现在生产中,他们有一个代理和我的应用程序的安全认证地址。
答案 0 :(得分:1)
尝试在
中进行调试protected Authentication createSuccessfulAuthentication(UsernamePasswordAuthenticationToken authentication,
UserDetails user){
}
AbstractLdapAuthenticationProvider
的方法,此处成功登录后才会创建成功的身份验证对象。