Я пишу приложение, в котором я пытаюсь настроить видимость различных конечных точек.
Я написал следующий код:
@Override
protected void configure(HttpSecurity http) throws Exception {
http.cors().and().csrf().disable().authorizeRequests()
.antMatchers(HttpMethod.POST, SIGN_UP_URL).permitAll()
.antMatchers(HttpMethod.POST, "/login").permitAll()
.antMatchers(HttpMethod.GET, "/login").permitAll()
.antMatchers(HttpMethod.GET, "/").authenticated()
.antMatchers(HttpMethod.GET, UPVOTE_URL).authenticated()
.antMatchers(HttpMethod.GET, DOWNVOTE_URL).authenticated()
.antMatchers(HttpMethod.POST, LOG_OUT_URL).authenticated()
.antMatchers(HttpMethod.DELETE, DELETE_URL).authenticated()
.antMatchers(HttpMethod.POST, ADD_URL).authenticated()
.anyRequest().authenticated()
.and()
.addFilter(new JWTAuthenticationFilter(authenticationManager()))
.addFilter(new JWTAuthorizationFilter(authenticationManager()))
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and()
.logout()
.and()
.exceptionHandling()
.authenticationEntryPoint(new Http401AuthenticationEntryPoint("No authorization"));
Поведение моей программы довольно странное, потому что программа иногда возвращает 401, когда я пытаюсь достичь конечных точек "/ login" или "/" (которые afaik должен перенаправить на страницу входа, если пользователь не подписан в).
После этого я перезапускаю его, возможно, с некоторыми незначительными изменениями где-то еще, которые, казалось бы, совершенно не имеют значения, и мой веб-сайт снова работает.
Кто-нибудь из вас встречался с такими проблемами? Каковы причины этого? Я сделал что-то не так в конфигурации?