Spring Security не перехватывает запросы - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть устаревшее приложение, в которое я добавил библиотеки Spring Web MVC для предоставления нового API отдыха.

Я борюсь за интеграцию Spring-Security для перехвата входящих запросов.Я настроил класс конфигурации безопасности

@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
    auth
        .inMemoryAuthentication()
            .withUser("user").password("password").roles("USER");
}


@Override
protected void configure(HttpSecurity http) throws Exception {
      http.csrf().disable().authorizeRequests().anyRequest().authenticated().and().httpBasic();

   }
}

и инициализатор приложения безопасности

public class SecurityWebApplicationInitializer extends   
 AbstractSecurityWebApplicationInitializer {
 }

, следуя соответствующим инструкциям.

Используя отладчик, я подтвердил, что во время инициализации моей конфигурациикласс загружен.Моя проблема в том, что мои запросы не перехвачены, как ожидалось.

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

Я думаю, что вы забыли аннотацию @configuration, попробуйте это

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

@Autowired
public void configure(AuthenticationManagerBuilder auth) throws Exception {
    auth
        .inMemoryAuthentication()
            .withUser("user").password("password").roles("USER");
}


@Override
protected void configure(HttpSecurity http) throws Exception {
      http.csrf().disable().authorizeRequests().anyRequest().authenticated().and().httpBasic();

   }
}
0 голосов
/ 13 февраля 2019

Поскольку вы уже используете Spring MVC, перейдите к своему классу, который инициализирует ваше приложение.Если вы используете Java Config, он, скорее всего, расширяет AbstractAnnotationConfigDispatcherServletInitializer.

Добавьте ваш SecurityConfig к его "корневым классам конфигурации":

public class MySpringMmvcInitializer extends 
AbstractAnnotationConfigDispatcherServletInitializer {

    ...

    @Override
    protected abstract Class<?>[] getRootConfigClasses() {
        return new Class[] { ..., SecurityConfig.class};
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...