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/**");
    }
}

 

posted @ 2023-05-10 10:56  鸭猪是的念来过倒  阅读(159)  评论(0编辑  收藏  举报