добавил Access-Control-Allow-Methods, Access-Control-Allow-Headers, пока *
добавил настройку для SameSite
This commit is contained in:
parent
b5cac139a8
commit
03a7f1056a
3 changed files with 29 additions and 4 deletions
|
|
@ -2,6 +2,7 @@ package ru.spcex.clearing.backendapi.config;
|
|||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.boot.web.server.Cookie;
|
||||
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
|
||||
import org.springframework.boot.web.servlet.server.ConfigurableServletWebServerFactory;
|
||||
import org.springframework.boot.web.servlet.server.CookieSameSiteSupplier;
|
||||
|
|
@ -13,6 +14,7 @@ import org.springframework.http.converter.json.MappingJackson2HttpMessageConvert
|
|||
import org.springframework.web.bind.annotation.CrossOrigin;
|
||||
import org.springframework.web.context.request.RequestContextListener;
|
||||
import org.springframework.web.servlet.config.annotation.*;
|
||||
import ru.spcex.clearing.backendapi.config.element.BackendApiSettings;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.function.Consumer;
|
||||
|
|
@ -24,10 +26,14 @@ import java.util.function.Consumer;
|
|||
@CrossOrigin
|
||||
public class WebConfig implements WebMvcConfigurer {
|
||||
private final MappingJackson2HttpMessageConverter customJsonHttpConverter;
|
||||
private final String sameSite;
|
||||
|
||||
@Autowired
|
||||
public WebConfig(@Qualifier("customJsonHttpConverter") MappingJackson2HttpMessageConverter customJsonHttpConverter) {
|
||||
public WebConfig(@Qualifier("customJsonHttpConverter") MappingJackson2HttpMessageConverter customJsonHttpConverter,
|
||||
BackendApiSettings backendSettings
|
||||
) {
|
||||
this.customJsonHttpConverter = customJsonHttpConverter;
|
||||
this.sameSite = backendSettings.getSecurity().getSameSite();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -79,6 +85,16 @@ public class WebConfig implements WebMvcConfigurer {
|
|||
|
||||
@Bean
|
||||
public CookieSameSiteSupplier applicationCookieSameSiteSupplier() {
|
||||
if (sameSite == null) {
|
||||
return null;
|
||||
} else if (sameSite.equalsIgnoreCase(Cookie.SameSite.NONE.attributeValue())) {
|
||||
return CookieSameSiteSupplier.ofNone();
|
||||
} else if (sameSite.equalsIgnoreCase(Cookie.SameSite.LAX.attributeValue())) {
|
||||
return CookieSameSiteSupplier.ofNone();
|
||||
} else if (sameSite.equalsIgnoreCase(Cookie.SameSite.STRICT.attributeValue())) {
|
||||
return CookieSameSiteSupplier.ofStrict();
|
||||
} else {
|
||||
throw new IllegalStateException("unknown SameSite setting");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ public class ClearingCorsFilter extends OncePerRequestFilter {
|
|||
// } else {
|
||||
// methods = "*";
|
||||
// }
|
||||
// setHeaderValue(httpServletResponse, H_ACCESS_CONTROL_ALLOW_METHODS, methods);
|
||||
setHeaderValue(httpServletResponse, H_ACCESS_CONTROL_ALLOW_METHODS, "*");
|
||||
|
||||
// String headers;
|
||||
// if (head.length > 0) {
|
||||
|
|
@ -78,7 +78,7 @@ public class ClearingCorsFilter extends OncePerRequestFilter {
|
|||
// } else {
|
||||
// headers = "*";
|
||||
// }
|
||||
// setHeaderValue(httpServletResponse, H_ACCESS_CONTROL_ALLOW_HEADERS, headers);
|
||||
setHeaderValue(httpServletResponse, H_ACCESS_CONTROL_ALLOW_HEADERS, "*");
|
||||
|
||||
setHeaderValue(httpServletResponse, H_ACCESS_CONTROL_ALLOW_CREDENTIALS, "true");
|
||||
log.trace("cors filter -> added ok");
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package ru.spcex.clearing.backendapi.security.element;
|
|||
|
||||
public class SecuritySettings {
|
||||
private Boolean authorizationDisabled = false;
|
||||
private String sameSite;
|
||||
|
||||
public Boolean getAuthorizationDisabled() {
|
||||
return authorizationDisabled;
|
||||
|
|
@ -10,4 +11,12 @@ public class SecuritySettings {
|
|||
public void setAuthorizationDisabled(Boolean authorizationDisabled) {
|
||||
this.authorizationDisabled = authorizationDisabled;
|
||||
}
|
||||
|
||||
public String getSameSite() {
|
||||
return sameSite;
|
||||
}
|
||||
|
||||
public void setSameSite(String sameSite) {
|
||||
this.sameSite = sameSite;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue