Spring Security无需登录即可进行身份验证

时间:2020-03-11 14:25:21

标签: spring spring-security

我正在使用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);

感谢您的帮助。

0 个答案:

没有答案