我正在使用Spring Boot,并且正在尝试创建一个微服务,以使用LDAP对用户进行身份验证。我正在使用this LDAP server。
这是SecurityConfiguration
类,其中formLogin
可以正常工作:
@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
public void configure(AuthenticationManagerBuilder auth) throws Exception {
auth
.ldapAuthentication()
.userDnPatterns("uid={0}")
.groupSearchBase("ou=mathematicians")
.contextSource()
.url("ldap://ldap.forumsys.com:389/dc=example,dc=com")
.managerDn("cn=read-only-admin,dc=example,dc=com")
.managerPassword("password");
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.anyRequest().authenticated()
.and().formLogin();
}
}
如何在没有formlogin()
的情况下发送用户名和密码?我尝试设置Authentication
:
@Override
public void run(String... args) throws Exception {
Authentication request = new UsernamePasswordAuthenticationToken("euclid", "password");
Authentication result = authenticationManager.authenticate(request);
SecurityContextHolder.getContext().setAuthentication(result);
}
...但是它不起作用。我在行
中收到NullPointerException
Authentication result = authenticationManager.authenticate(request);
感谢您的帮助。