SpringSecurity整合web时js加载失败、X-Frame-Options=DENY导致无法弹窗的问题
1:问题描述
整合springsecurity后,登录正常,但是页面js提示为重定向导致加载失败
点击登录后
原因分析:
重定向的源就是登录页面,说明请求js跳转到了登录页面,也就比较明确问题,那就是没有放行静态资源
解决方案:把静态资源路径写上就解决了
@Override public void configure(WebSecurity web) throws Exception { web.ignoring().antMatchers("/js/**"); }
问题2:
登录成了,里面的请求都正常,但是,我点击一个嵌套页面的时候,是用layer.open弹出来的子页面,出现了这么个问题
它描述的很清楚哈,就是有个属性值是deny 所以不能访问
补充一下这个参数的值,一般用SAMEORIGIN即可
DENY 只要使用frame或者类似标签,都无法显示,但是单独访问是可以的
SAMEORIGIN 同源就可以显示
ALLOW-FROM uri 该页面可以在指定来源的frame中展示
解决方案:
在springsecurity配置中,修改这个参数值:http.headers().frameOptions().sameOrigin();
完整配置
@Configuration public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.formLogin() .usernameParameter("current_username") .passwordParameter("current_password") .loginPage("/login.html") .loginProcessingUrl("/login") .defaultSuccessUrl("/index.html").permitAll() .and().authorizeRequests() .antMatchers("/login","/login.html").permitAll() .anyRequest().authenticated() .and().csrf().disable(); //无权限页面 http.exceptionHandling().accessDeniedPage("/login.html"); //登出页面 http.logout().logoutUrl("/logout").logoutSuccessUrl("/login.html").permitAll(); //设置同源显示 http.headers().frameOptions().sameOrigin(); } @Override public void configure(WebSecurity web) throws Exception { web.ignoring().antMatchers("/js/**"); } }