我已经配置了身份验证,因此我同时拥有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不起作用。
欢迎任何想法。
提前致谢。