Конфигурация Spring для перезаписи безопасности - PullRequest
0 голосов
/ 12 мая 2018

У меня есть приложение Spring Boot 2 с защитой Spring, как указано ниже:

@SpringBootApplication(exclude = [(SecurityAutoConfiguration::class)])
class UntappdCqrsApplication

fun main(args: Array<String>) {
    runApplication<UntappdCqrsApplication>(*args)
}

и класс конфигурации

@Configuration
@EnableGlobalMethodSecurity(prePostEnabled = true)
class TokenConfiguration(
        val jwtTokenProvider: JwtTokenProvider
) : WebSecurityConfigurerAdapter() {

    override fun configure(http: HttpSecurity) {
        http.csrf().disable();
        http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);

        http.authorizeRequests()
                .antMatchers("/users/signup").permitAll()
                .anyRequest().authenticated()

        http.apply(JwtTokenConfigurer(jwtTokenProvider));
    }
}

Существует две конечные точки: POST users/signup и GET users/test.
Согласно моей конфигурации, / signup не должен требовать аутентификации и / test должен, но обе конечные точки доступны без какой-либо аутентификации.

Если я добавлю @EnableWebSecurity в мой класс TokenConfiguration, Spring теперь генерирует пароль по умолчанию, и обе конечные точки теперь защищены.

Я думаю, что я что-то здесь упускаю, но у меня естьпонятия не имею, что

1 Ответ

0 голосов
/ 12 мая 2018

Вы не предоставили источник или импорт для ваших классов JwtTokenProvider или JwtTokenConfigurer, но вполне вероятно, что ваш JwtTokenProvider генерирует непроверенное исключение или даже напрямую отправляет ответ в случае сбоя аутентификации.Это предотвратит срабатывание allowAll ().

Смотрите мой ответ на похожий вопрос:

https://stackoverflow.com/a/46086769/873590

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...