Несмотря на то, что я добавил @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
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Laravel 11: в запрошенном ресурсе отсутствует заголовок Access-Control-Allow-Origin.
Anonymous » » в форуме Php - 0 Ответы
- 18 Просмотры
-
Последнее сообщение Anonymous
-