作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Spring Security 为我的 Spring Boot 项目中的特定 URL 禁用 XFrameOptions header 或将其设置为 SAME_ORIGIN。我粘贴下面的代码,
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
RequestMatcher matcher = new AntPathRequestMatcher("**/course/embed/**");
DelegatingRequestMatcherHeaderWriter headerWriter =
new DelegatingRequestMatcherHeaderWriter(matcher,new XFrameOptionsHeaderWriter());
http.headers()
.frameOptions().sameOrigin()
.addHeaderWriter(headerWriter);
}
}
我正在使用 AntRequestMatcher 但这不起作用,它反而禁用了所有响应的 XFrameOptions header 。有一个更好的方法吗?请帮忙。
最佳答案
您需要配置多个 HttpSecurity 实例。关键是多次扩展 WebSecurityConfigurationAdapter。例如,以下是与 **/course/embed/**
匹配的 URL 的不同配置示例。如果匹配 X-Frame-Options 将为 SAMEORIGIN,否则为 DENY。
@EnableWebSecurity
public class WebMVCSecurity {
//Configure Authentication as normal, optional, showing just as a sample to indicate you can add other config like this
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication()
.withUser("user").password("password").roles("USER").and()
.withUser("admin").password("password").roles("USER", "ADMIN");
}
// Create an instance of WebSecurityConfigurerAdapter that contains @Order to specify which WebSecurityConfigurerAdapter should be considered first.
@Configuration
@Order(1)
public static class ApiWebSecurityConfigurationAdapter extends WebSecurityConfigurerAdapter {
protected void configure(HttpSecurity http) throws Exception {
// The http.antMatcher states that this HttpSecurity will only be applicable to URLs that match with **/course/embed/**
http.antMatcher("**/course/embed/**").headers().frameOptions().sameOrigin();
}
}
// Create another instance of WebSecurityConfigurerAdapter.
// If the URL does not match with **/course/embed/** this configuration will be used.
// This configuration is considered after ApiWebSecurityConfigurationAdapter since it has an @Order value after 1 (no @Order defaults to last).
@Configuration
public static class FormLoginWebSecurityConfigurerAdapter extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.anyRequest().authenticated()
.and()
.formLogin();
//bla bla bla ...
}
}
}
关于java - 禁用 URL Spring Security JAVA 配置的 X-FrameOptions 响应 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42257402/
关于 Spring Security 让、控制和访问 h2 web 控制台 我看了这两篇文章: Spring Boot /h2-console throws 403 with Spring Secur
我正在尝试使用 Spring Security 为我的 Spring Boot 项目中的特定 URL 禁用 XFrameOptions header 或将其设置为 SAME_ORIGIN。我粘贴下面的
我是一名优秀的程序员,十分优秀!