静态资源放行

时间:2022-10-03 13:57:03
  • 在demo02的基础上开发
  • 在spring boot整合security的项目中,是不能直接通过控制层跳转到resource目录下的html页面的
  • 只有我们在security配置类中指定了403页面或登录页面时,才能跳转到这2个页面
http.exceptionHandling().accessDeniedPage("/403.html");
http.formLogin().loginPage("/login.html")
  • 前期准备
# 在security配置类中指定该接口需要role_admin角色权限
.antMatchers("/test").hasRole("ADMIN")

# 在CustomUserDetailsService中,该用户拥有的权限为admin

# 编写css、js文件,放置1张图片
# 将css、js、图片引入403.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>test</title>
<link rel="stylesheet" href="./css/demo.css" type="text/css">
<script type="text/javascript" src="./js/demo.js"></script>
</head>
<body>
<p class="cc">403!</p>
<img src="./imgs/mm01.jpg" style="height: 100px; width: 200px">
<script>
fun()
</script>
</body>
</html>

# 当访问test接口时,没有权限,就会跳转到403.html页面
# 测试静态资源是否放行成功

静态资源放行

# security配置类中添加如下,测试成功
.antMatchers("/**/*.css","/**/*.js","/imgs/**").permitAll()
# security配置类中添加如下,测试成功

.antMatchers(loadExcludePath()).permitAll()

@Override
public void configure(WebSecurity web) {
web.ignoring().antMatchers(loadExcludePath());
}

private String[] loadExcludePath() {
return new String[]{
"/**/*.css",
"/**/*.js",
"/imgs/**"
};
}