踩坑原因:因为使用layui需要弹出一个页面,后台权限使用的是security,弹出层需要请求后台返回逻辑视图名。当我点击完之后返回页面一片空白,打开控制台,显示请求路径为404,异常如下:
打开控制台可以看到一下错误信息:
这是因为security不允许使用嵌套页面,即使本地访问依然不允许,我们需要在security配置类中加如下代码结局问题。
@Override
public void configure(HttpSecurity http) throws Exception {
//释放静态资源,指定资源拦截规则,
// 指定自定义认证页面,指定退出认证配置,csrf(跨域伪造请求)配置
http.authorizeRequests()
.antMatchers("/wx/**","/intoLogin","/webapp/**","/druid/**").permitAll()//释放这些资源,允许匿名访问
.antMatchers("/sys/*").hasRole("USER")
.anyRequest().authenticated()//其他资源需要认证
.and()
.formLogin()
.loginPage("/intoLogin")//登陆页请求的接口
.loginProcessingUrl("/login")//登陆地址,由springSecurity提供
.usernameParameter("username")//用户名参数名
.passwordParameter("password")//密码参数名
.successForwardUrl("/jumpIndex")//登陆成功
.failureForwardUrl("/loginFail")//登录失败
.permitAll()//指定所有资源释放
.and()
.logout()//登出
.logoutUrl("/logout")//指定登出路径
.logoutSuccessUrl("/loginOut")//登出成功后跳转的url
.invalidateHttpSession(true)//是否清空session
.permitAll()
.and()
.csrf()
.disable()//关闭csrf(跨域伪造请求)
.headers()//请求头设置
.frameOptions()//允许嵌套页面
.disable();
}
这里是关键,加上之后即可解决问题