9 Mayıs 2019 Perşembe

SpringSecurity CorsConfiguration Sınıfı - HttpSecurity İle Kullanılır

Kullanım
Örnek
Bir projede şöyle yaptım
@Bean
public CorsConfigurationSource corsConfigurationSource()[
  UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();

  CorsConfiguration cors = new CorsConfiguration();
  cors.applyPermitDefaultsValues();
  cors.setAllowCredentials(true);

  //Required to send back a custom header in response
  cors.addExposedHeader("role");
  
  //Default methods are GET,HEAD,POST
  //Add other required methods
  cors.addAllowedMethod("DELETE");
  cors.addAllowedMethod("PATH");
  cors.addAllowedMethod("PUT");

  source.registerCorsConfiguration("/*",cors);
  return source;
}
Örnek
Şöyle yaparız.
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

  @Override
  protected void configure(HttpSecurity http) throws Exception {
     http
      // by default uses a Bean by the name of corsConfigurationSource
      .cors().and()
      ...
  }

  @Bean
  CorsConfigurationSource corsConfigurationSource() {
    CorsConfiguration configuration = new CorsConfiguration();
    configuration.setAllowedOrigins(Arrays.asList("https://example.com"));
    configuration.setAllowedMethods(Arrays.asList("GET","POST"));
    UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
    source.registerCorsConfiguration("/**", configuration);
    return source;
  }
}
constructor
Şöyle yaparız.
CorsConfiguration configuration = new CorsConfiguration();
addAllowedMethod metodu
applyPermitDefaultValues() çağrısı ile gelen varsayılan metodlar GET,HEAD ve POST. Eklenebilecek metodlar şöyle.
DELETE
PUT
OPTIONS
addAllowedOrigin metodu
Açıklaması şöyle. Spring'in hangi origin'den gelen request'leri kabul edip etmeyeceğini belirtir.
applyPermitDefaultValues() çağrısı ile gelen varsayılan origin "*" değeridir. Bu değer ile
her origin kabul edilir.
In the AllowedOrigin element, you specify the origins that you want to allow cross-domain requests from, for example, http://www.example.com. The origin string can contain only one * wildcard character, such as http://*.example.com. You can optionally specify * as the origin to enable all the origins to send cross-origin requests. You can also specify https to enable only secure origins.
addExposedHeader metodu
Açıklaması şöyle. Spring'in response içinde header gönderebilmesini sağlar.
ExposeHeader—Identifies the response headers that customers are able to access from their applications (for example, from a JavaScript XMLHttpRequest object).
applyPermitDefaultValues metodu
allowedOrigins, allowedMethods,,resolveMethods,maxAge alanlarına varsayılan değerler atar.

setAllowCredentials metodu
Açıklaması şöyle. Spring'in cookie'leri kabul edip kullanabilmesini sağlar. applyPermitDefaultValues() çağrısı ile bu değer false gelir. Session ve cookie kullanmak için true atamak gerekir.
Credentials include cookies and HTTP authentication schemes.

Hiç yorum yok:

Yorum Gönder