SpringSecurity设置白名单
Spring Security 访问权限系列文章:
《SpringSecurity基于配置方法控制访问权限:MVC匹配器、Ant匹配器》
《SpringSecurity基于注解实现方法级别授权:@PreAuthorize、@PostAuthorize、@Secured》
《SpringSecurity设置白名单》
白名单(Whitelist)是一个安全术语,它指的是一个明确的列表或集合,其中包含了被系统、程序或网络明确授权允许访问或执行的对象。这些对象可以是用户、IP地址、电子邮件地址、域名、文件、进程或其他任何实体。
在 Spring Security 中设置白名单(即允许某些特定的URL路径无需认证即可访问)是一项常见的需求。你可以通过配置 WebSecurityConfigurerAdapter 来实现这一点。以下是一个示例,展示了如何配置 Spring Security 以允许特定的 URL 路径无需认证即可访问:
【示例】在 WebSecurityConfig (Spring Security 配置类)中,设置 HTTP 访问白名单。
/**
* Spring Security 配置类
* @author pan_junbiao
**/
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter
{
//公开权限的路径(白名单)
private static final String[] WHITE_LIST = {
"/user/getUserInfo",
"/js/**",
"/css/**",
"/captcha.jpg"
};
@Override
protected void configure(HttpSecurity http) throws Exception
{
http.authorizeRequests()
.antMatchers(WHITE_LIST).permitAll() //设置白名单并公开其权限(公开的权限必须放在最上面)
.anyRequest() //匹配所有的请求
.authenticated(); //所有匹配的URL都需要被认证才能访问
}
}
方法说明:
- antMatchers(String):通过 Ant 匹配器,匹配 HTTP 端点的访问路径。
- permitAll():无条件允许一切用户访问。