#java #spring #spring-security #spring-security-oauth2
#java #spring #spring-безопасность #spring-security-oauth2
Вопрос:
У меня есть приложение spring security oauth2, которое использует spring security вместе с ним. Конфигурация выглядит следующим образом
Вот мой WebConfig.java файл
loginOrigin = "http://localhost:3000";
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/register").permitAll()
.and()
.formLogin()
.loginPage(loginOrigin "/login.html")
.loginProcessingUrl("/login")
.failureHandler(new LoginFailureHandler(loginOrigin "/login?error=true"))
.and()
.logout()
.logoutSuccessHandler(new LogoutSuccessHandler())
.and()
.exceptionHandling()
.authenticationEntryPoint(new LoginEntryPoint(loginOrigin));
http.csrf().disable();
}
Как вы можете видеть, loginOrigin указывает страницу входа во внешнее приложение react.
В приложении react у меня установлен прокси-сервер, чтобы запросы на localhost: 3000 отправлялись на localhost: 8080
Мой вопрос заключается в том, когда я пытаюсь получить доступ http://localhost:8080/login непосредственно, он всегда возвращается с номером 404. Я могу получить доступ к другим URL-адресам, например http://localhost:8080/register в моем приложении. У меня возникла эта проблема только с URL-адресом входа.
Однако, когда я запускаю и запускаю приложение react и выполняю http://localhost:3000/login это работает нормально.
Можете ли вы сообщить мне, почему это происходит?
Комментарии:
1. Что вы подразумеваете под «прямым доступом»? Вы ожидаете, что ваша конечная точка loginProcessingUrl вернет представление?
2. Таким образом, прямой доступ означает 1. Использование postman 2. У меня есть развернутое приложение react, и у меня есть настройка прокси для вызова этой конечной точки входа. loginProcessingUrl выполнит перенаправление, поскольку я использую это в дополнение к OAuth2.0
Ответ №1:
Добавить:
.antMatchers("/login").permitAll()