Spring Security, который требует имя пользователя и пароль при каждом запросе - PullRequest
0 голосов
/ 13 апреля 2020

Я хотел создать бэкэнд-приложение Rest, которому требуется заголовок авторизации при каждом запросе, проверить и вернуть данные или 401 не авторизовано, если введен неправильный пользователь или пароль.

У меня есть Spring Security в моем classpath с этой простой конфигурацией:

@EnableWebSecurity
public class WebSecurity extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.inMemoryAuthentication()
                .passwordEncoder(NoOpPasswordEncoder.getInstance())
                .withUser("user")
                .password("pass")
                .roles("USER");
    }
}

Но одна вещь не работает правильно: когда я делаю запрос с действительным именем пользователя и паролем в Postman, сервер отвечает на данные правильно, но если я изменю пароль на неправильный и сохраню правильное имя пользователя, сервер все равно ответит данными и статусом OK, как если бы он использовал Cooking JSESSIONID ie для проверки дальнейших запросов.

Является ли это способом использования Spring Security только для проверки авторизации заголовка (без файлов cookie, сеансов и сохранения информации о пользователе или страниц входа и выхода из системы), или лучше использовать вместо этого фильтры?

Спасибо Вам за любую помощь!

1 Ответ

1 голос
/ 14 апреля 2020

Просто добавьте следующее в вашу конфигурацию:

 @Override
protected void configure(HttpSecurity http) throws Exception {
    http
      .sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy.STATELESS)
}

Это настроит безопасность пружины, чтобы никогда не создавать повара ie, каждый запрос должен проходить повторную проверку подлинности.

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