Защита приложения с помощью Spring Security не работает - PullRequest
0 голосов
/ 06 мая 2020

Я написал простую серверную программу и хотел защитить ее с помощью Spring Security и LDAP. Очевидно, что часть проекта LDAP работает нормально. проблема в том, что когда я использую formLogin() для ввода, это не работает, а когда я использую почтальон, он показывает результат без запроса имени пользователя и пароля! Думаю что-то в моем webSecurityConfig не так. это мой webSecurityConfig код:

@ Configuration publi c class WebSecurityConfig расширяет WebSecurityConfigurerAdapter {

@Override
protected void configure(HttpSecurity http) throws Exception {
    http
            .csrf().disable()
            .authorizeRequests()
            .antMatchers("/**").permitAll()
            .anyRequest().fullyAuthenticated();
}

@Override
public void configure(AuthenticationManagerBuilder auth) throws Exception {
    auth
            .ldapAuthentication()
            .userDnPatterns("uid={0},ou=people")
            .groupSearchBase("ou=people")
            .contextSource()
            .url("ldap://localhost:10389/dc=example,dc=com")
            .and()
            .passwordCompare()
            .passwordEncoder(new LdapShaPasswordEncoder() {
            })
            .passwordAttribute("userPassword");
} }

1 Ответ

0 голосов
/ 06 мая 2020

Используйте @EnableWebSecurity, чтобы включить Spring Security.

@Configuration 
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

}

и удалите .antMatchers("/**").permitAll() из вашей конфигурации, поскольку он соответствует всем запросам. Эта конструкция обычно используется для указания определенных c конечных точек из белого списка, таких как stati c документация, которая не требует безопасности:

.antMatchers("/docs/**").permitAll()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...