Несмотря на то, что я добавил @CrossOrgin
Я все равно получаю ошибку CORS: http://localhost:8080/customer/details/shkhamiz@gmail. com» из источника «http://localhost:5173» заблокирован политикой CORS: ответ на предполетный запрос не проходит проверку контроля доступа: в запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin».
Изменить: я только что заметил, что для
.requestMatchers("auth/**") ошибок не возникает. .permitAll() выглядит как проблема с конфигурацией безопасности
может ли кто-нибудь помочь
Очевидно, только те запросы, которые разрешено без аутентификации в конфигурации безопасности, не выдает никаких ошибок
вот код контроллера
@CrossOrigin(origins = "http://localhost:5173/")
@RestController
@RequestMapping("customer")
public class CustomerController {
private final CustomerService customerService;
public CustomerController(CustomerService customerService) {
this.customerService = customerService;
}
@PutMapping("details")
public ResponseEntity addDetailsOfCustomer(@RequestBody Customer customer) {
return new ResponseEntity(customerService.addDetailsOfCustomer(customer), HttpStatus.OK);
}
@GetMapping("details/{username}")
public ResponseEntity getDetailsOfCustomer(@PathVariable String username) {
Customer customer = customerService.getDetailsOfCustomer(username);
return new ResponseEntity(customer,HttpStatus.OK);
}
@PostMapping("address/{username}")
public ResponseEntity addAddressToCustomer(@RequestBody Address address, @PathVariable String username) {
return new ResponseEntity(customerService.addAddress(address,username),HttpStatus.CREATED);
}
}
вот код конфигурации безопасности
@Configuration
public class SecurityConfig {
private final AuthenticationProvider authenticationProvider;
private final JwtFilter jwtFilter;
public SecurityConfig(AuthenticationProvider authenticationProvider, JwtFilter jwtFilter) {
this.authenticationProvider = authenticationProvider;
this.jwtFilter = jwtFilter;
}
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
return http
.authorizeHttpRequests(auth -> auth
.requestMatchers("auth/**")
.permitAll()
.requestMatchers("api/user/**")
.hasAuthority(Role.USER.name())
.requestMatchers("api/restaurant/**")
.hasAuthority(Role.RESTAURANT_OWNER.name())
.anyRequest()
.authenticated())
.sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
.csrf(AbstractHttpConfigurer::disable)
.authenticationProvider(authenticationProvider)
.addFilterBefore(jwtFilter, UsernamePasswordAuthenticationFilter.class)
.build();
}
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... source-whe
В запрошенном ресурсе отсутствует заголовок Access-Control-Allow-Origin — при попытке получить запросы. ⇐ JAVA
Программисты JAVA общаются здесь
1726747369
Anonymous
Несмотря на то, что я добавил @CrossOrgin
Я все равно получаю ошибку CORS: http://localhost:8080/customer/details/shkhamiz@gmail. com» из источника «http://localhost:5173» заблокирован политикой CORS: ответ на предполетный запрос не проходит проверку контроля доступа: в запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin».
Изменить: я только что заметил, что для
.requestMatchers("auth/**") ошибок не возникает. .permitAll() выглядит как проблема с конфигурацией безопасности
может ли кто-нибудь помочь
Очевидно, только те запросы, которые разрешено без аутентификации в конфигурации безопасности, не выдает никаких ошибок
вот код контроллера
@CrossOrigin(origins = "http://localhost:5173/")
@RestController
@RequestMapping("customer")
public class CustomerController {
private final CustomerService customerService;
public CustomerController(CustomerService customerService) {
this.customerService = customerService;
}
@PutMapping("details")
public ResponseEntity addDetailsOfCustomer(@RequestBody Customer customer) {
return new ResponseEntity(customerService.addDetailsOfCustomer(customer), HttpStatus.OK);
}
@GetMapping("details/{username}")
public ResponseEntity getDetailsOfCustomer(@PathVariable String username) {
Customer customer = customerService.getDetailsOfCustomer(username);
return new ResponseEntity(customer,HttpStatus.OK);
}
@PostMapping("address/{username}")
public ResponseEntity addAddressToCustomer(@RequestBody Address address, @PathVariable String username) {
return new ResponseEntity(customerService.addAddress(address,username),HttpStatus.CREATED);
}
}
вот код конфигурации безопасности
@Configuration
public class SecurityConfig {
private final AuthenticationProvider authenticationProvider;
private final JwtFilter jwtFilter;
public SecurityConfig(AuthenticationProvider authenticationProvider, JwtFilter jwtFilter) {
this.authenticationProvider = authenticationProvider;
this.jwtFilter = jwtFilter;
}
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
return http
.authorizeHttpRequests(auth -> auth
.requestMatchers("auth/**")
.permitAll()
.requestMatchers("api/user/**")
.hasAuthority(Role.USER.name())
.requestMatchers("api/restaurant/**")
.hasAuthority(Role.RESTAURANT_OWNER.name())
.anyRequest()
.authenticated())
.sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
.csrf(AbstractHttpConfigurer::disable)
.authenticationProvider(authenticationProvider)
.addFilterBefore(jwtFilter, UsernamePasswordAuthenticationFilter.class)
.build();
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79002169/no-access-control-allow-origin-header-is-present-on-the-requested-resource-whe[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия