У меня есть интерфейс vue, отправляющий запросы к серверу весенней загрузки, настроенному как сервер ресурсов. У меня возникли проблемы с настройкой серверной части таким образом, чтобы я мог отправлять запросы из внешнего интерфейса. Запросы GET работают как со стороны Postman, так и с моего интерфейса, но любой другой запрос, например PUT, работает только с Postman и возвращает 401, если он отправлен из моего интерфейса. Я подозревал CORS, поэтому отключил его следующим образом:
http
.cors(Customizer.withDefaults())
.csrf(AbstractHttpConfigurer::disable)
.authorizeHttpRequests((auth) -> auth
.requestMatchers(AntPathRequestMatcher.antMatcher("/h2-console/**")).permitAll()
.anyRequest().authenticated())
.oauth2ResourceServer(oauth2 -> oauth2.jwt(Customizer.withDefaults()));
Если я попытаюсь отключить CORS следующим образом: .cors(cors -> cors.disable), мои запросы GET от внешнего интерфейса также начнут завершаться сбоем.Маршрут PUT в классе @RestController настраивается следующим образом:
@PutMapping("/test")
void test() {
System.out.println("called");
}
Добавление аннотации @CrossOrigin также не сработало.
Маршрут GET выглядит следующим образом:
@GetMapping("/users")
List all() {
return repo.findAll();
}
Запрос делается с такими аксиомами:
async saveCurrentChanges() {
await axios.put("http://localhost:8080/api/test", { headers: { "Authorization": "Bearer " + getAuth().currentUser.accessToken }}).then((response) => {
console.log("success");
}).catch((error) => {
console.log(error);
});
},
Что меня действительно смущает, так это то, почему запросы от Postman проходят, а запросы PUT от моего интерфейса — нет.
Я включил ведение журнала для безопасности Spring в моем application.context, но все, что я получаю, это заблокированные запросы:
2024-06-27T14:57:44.286+02:00 DEBUG 10700 --- [xp-backend] [nio-8080-exec-3] o.s.security.web.FilterChainProxy : Securing PUT /api/test
2024-06-27T14:57:44.286+02:00 DEBUG 10700 --- [xp-backend] [nio-8080-exec-3] o.s.s.w.a.AnonymousAuthenticationFilter : Set SecurityContextHolder to anonymous SecurityContext
и это для успешных запросов GET:
2024-06-27T14:57:42.175+02:00 DEBUG 10700 --- [xp-backend] [nio-8080-exec-2] o.s.security.web.FilterChainProxy : Securing GET /api/users
2024-06-27T14:57:42.460+02:00 DEBUG 10700 --- [xp-backend] [nio-8080-exec-2] o.s.s.o.s.r.a.JwtAuthenticationProvider : Authenticated token
2024-06-27T14:57:42.460+02:00 DEBUG 10700 --- [xp-backend] [nio-8080-exec-2] .s.r.w.a.BearerTokenAuthenticationFilter : Set SecurityContextHolder to JwtAuthenticationToken [Principal=org.springframework.security.oauth2.jwt.Jwt@abc94983, Credentials=[PROTECTED], Authenticated=true, Details=WebAuthenticationDetails [RemoteIpAddress=127.0.0.1, SessionId=null], Granted Authorities=[]]
2024-06-27T14:57:42.462+02:00 DEBUG 10700 --- [xp-backend] [nio-8080-exec-2] o.s.security.web.FilterChainProxy : Secured GET /api/users
Подробнее здесь: https://stackoverflow.com/questions/786 ... rity-oauth
Запрос PUT работает с Postman, но не с axios.put для серверной части Spring Security oAuth Resource Server. ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Запрос Axios не может получить доступ к соответствующему методу в серверной части
Anonymous » » в форуме C# - 0 Ответы
- 97 Просмотры
-
Последнее сообщение Anonymous
-