У меня есть защищенная конечная точка в REST, где для получения информации требуется токен JWT. Я включил CORS для всего контроллера. Мне было интересно, что ошибка cors не возникает для всех незащищенных конечных точек.
@RestController
@RequestMapping("/api")
@CrossOrigin(origins = "*",allowedHeaders = "*")
public class CustomerDetailsRestController {
@Autowired
private CustomerDetailsService customerDetailsService;
@Autowired
private JwtRequestFilter jwtTokenFilter;
@GetMapping("/userdetails")
public CustomerSpecificDetails findCustomerDetails(){
String userid=jwtTokenFilter.getUsername();
System.out.println(userid);
return customerDetailsService.getCustomerDetails(userid);
}
}
, а мой angular сервис такой, как показано ниже.
@Injectable()
export class UserDetailsService {
userDetailsUrl = 'http://localhost:8080/api/userdetails';
constructor(private http: HttpClient) { }
getUserDetails(): Observable<UserDetails> {
const headerData = {
'security': 'Basic ' + localStorage.getItem('token')
};
console.log(headerData.security);
const reqHeaders = new HttpHeaders(headerData);
return this.http.get<UserDetails>(this.userDetailsUrl, {headers : reqHeaders});
}