У меня есть интерфейс 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
Программисты JAVA общаются здесь
1719603548
Anonymous
У меня есть интерфейс 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
Подробнее здесь: [url]https://stackoverflow.com/questions/78677845/put-request-works-with-postman-but-not-with-axios-put-for-spring-security-oauth[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия