Added support for pre-flight requests.
This commit is contained in:
parent
34fc3841a4
commit
0ad4446978
33
src/main/java/com/svlada/CustomCorsFilter.java
Normal file
33
src/main/java/com/svlada/CustomCorsFilter.java
Normal file
@ -0,0 +1,33 @@
|
||||
package com.svlada;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import org.springframework.web.cors.CorsConfiguration;
|
||||
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
|
||||
import org.springframework.web.filter.CorsFilter;
|
||||
|
||||
/**
|
||||
* CustomCorsFilter
|
||||
*
|
||||
* @author vladimir.stankovic
|
||||
*
|
||||
* Aug 3, 2016
|
||||
*/
|
||||
public class CustomCorsFilter extends CorsFilter {
|
||||
|
||||
public CustomCorsFilter() {
|
||||
super(configurationSource());
|
||||
}
|
||||
|
||||
private static UrlBasedCorsConfigurationSource configurationSource() {
|
||||
CorsConfiguration config = new CorsConfiguration();
|
||||
config.setAllowCredentials(true);
|
||||
config.addAllowedOrigin("*");
|
||||
config.addAllowedHeader("*");
|
||||
config.setMaxAge(36000L);
|
||||
config.setAllowedMethods(Arrays.asList("GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS"));
|
||||
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
|
||||
source.registerCorsConfiguration("/api/**", config);
|
||||
return source;
|
||||
}
|
||||
}
|
||||
@ -12,12 +12,12 @@ import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
||||
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
|
||||
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
|
||||
import org.springframework.security.config.http.SessionCreationPolicy;
|
||||
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
||||
import org.springframework.security.web.authentication.AuthenticationFailureHandler;
|
||||
import org.springframework.security.web.authentication.AuthenticationSuccessHandler;
|
||||
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.svlada.CustomCorsFilter;
|
||||
import com.svlada.security.RestAuthenticationEntryPoint;
|
||||
import com.svlada.security.auth.ajax.AjaxAuthenticationProvider;
|
||||
import com.svlada.security.auth.ajax.AjaxLoginProcessingFilter;
|
||||
@ -100,6 +100,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
|
||||
.authorizeRequests()
|
||||
.antMatchers(TOKEN_BASED_AUTH_ENTRY_POINT).authenticated() // Protected API End-points
|
||||
.and()
|
||||
.addFilterBefore(new CustomCorsFilter(), UsernamePasswordAuthenticationFilter.class)
|
||||
.addFilterBefore(buildAjaxLoginProcessingFilter(), UsernamePasswordAuthenticationFilter.class)
|
||||
.addFilterBefore(buildJwtTokenAuthenticationProcessingFilter(), UsernamePasswordAuthenticationFilter.class);
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user