Spring-security ldap后备

时间:2014-07-29 12:43:44

标签: java spring spring-security

我已经配置了身份验证,因此我同时拥有inMemoryAuthentication和ldapAuthentication。我的问题是,当LDAP服务器不可访问时,我得到一个ConnectException(到目前为止一直很好),似乎它根本没有检查inMemoryAuthentication配置。 我试图找到一种方法,以便在无法访问LDAP服务器时配置回退。

这是我的配置:

@Override
protected void configure(AuthenticationManagerBuilder auth) {
    try {
        LOG.debug("Adding default app user");
        auth.inMemoryAuthentication().withUser("user").password("pass").roles("USER");
    } catch (Exception ex) {
        LOG.error("Error adding default app user", ex);
        throw new AuthenticationServiceException(ex.getLocalizedMessage(), ex);
    }

    ...

    try {
        auth.ldapAuthentication().userDnPatterns(ldapDn).groupSearchBase(ldapGroup).contextSource().url(ldapUrl);
        LOG.debug("Configured");
    } catch (Exception ex) {
        LOG.error("Error during configuration of LDAP auth.", ex);
    }
}


这是在WebSecurityConfigurerAdapter的子类中完成的。

正如我所说,当LDAP服务器可以访问时,一切正常,但是当LDAP服务器消失时,inMemoryAuthentication不起作用。

欢迎任何想法。

提前致谢。

0 个答案:

没有答案