Spring LDAP安全性不断重置

时间:2015-11-06 07:44:56

标签: java spring spring-security ldap

我有一个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后会发生什么?

我必须在我的开发环境中说。它工作正常,问题出现在生产中,他们有一个代理和我的应用程序的安全认证地址。

1 个答案:

答案 0 :(得分:1)

尝试在

中进行调试
protected Authentication createSuccessfulAuthentication(UsernamePasswordAuthenticationToken authentication,
            UserDetails user){

}

AbstractLdapAuthenticationProvider的方法,此处成功登录后才会创建成功的身份验证对象。