1 Şubat 2021 Pazartesi

SpringSecurity CORS Kullanımı

Giriş
CORS ayarları yapmak için bir sürü seçenek var

1. Eğer Spring MVC kullanıyorsak WebMvcConfigurer sınıfı kullanılır

2. Eğer Spring Security kullanıyorsak WebSecurityConfigurerAdapter sınıfının 
void configure(HttpSecurity httpSecurity);
metodu kullanılır. HttpSecurity sınıfının cors() metodu, CorsConfigurer nesnesi döndürür.

Eğer ikisini bir arada kullanıyorsak Spring Security, Spring MVC ayarlarını kullanabilir. Açıklaması şöyle
If you are using Spring MVC’s CORS support, you can omit specifying the CorsConfigurationSource and Spring Security will leverage the CORS configuration provided to Spring MVC.
3. CorsConfigurationSource kullanılabilir. CorsConfigurationSource nesnesine CorsConfiguration parametresi geçilir. Ben bunu kullandım.

4. CorsFilter filtresi kullanılabilir. CorsFilter nesnesine CorsConfiguration parametresi geçilir.

5. @CrossOrigin anotasyonu kullanılabilir.

CORS Yarar?
Açıklaması şöyle. HTTP OPTIONS isteklerinin reddedilmemesini sağlar.
We haven’t explicitly excluded the preflight requests from authorization in our Spring Security configuration. Remember that Spring Security secures all endpoints by default.

As a result, our API expects an authorization token in the OPTIONS request as well.

Spring provides an out of the box solution to exclude OPTIONS requests from authorization checks:
...
The cors() method will add the Spring-provided CorsFilter to the application context which in turn bypasses the authorization checks for OPTIONS requests.
Bu sınıfı kullanarak Http OPTIONS (yani preflight) isteklerinin SpringSecurity filtresine takılıp 401 hatası dönmesini engelleriz. OPTIONS isteğine verilecek cevabın içeriği CorsConfiguration sınıfı ile belirtilir. Şeklen şöyle






Hiç yorum yok:

Yorum Gönder