Ant 风格的路径匹配符
下面这段代码就是使用了 Ant 风格的路径匹配符
http.authorizeRequests()
.antMatchers("/admin/**").hasRole("admin")
.antMatchers("/user/**").hasRole("user")
.anyRequest().authenticated()
.and()
...
...
Ant 风格的路径匹配符在 Spring 家族中使用非常广泛,它的匹配规则也非常简单:
通配符 | 含义 |
---|---|
** | 匹配多层路径 |
* | 匹配一层路径 |
? | 任意单个字符 |
上面配置的含义是:
1、如果请求路径满足 /admin/** 格式,则用户需要具备 admin 角色。
2、如果请求路径满足 /user/** 格式,则用户需要具备 user 角色。
3、剩余的其他格式的请求路径,只需要认证(登录)后就可以访问。
注意
代码中配置的三条规则的顺序非常重要,和 Shiro 类似,Spring Security 在匹配的时候也是按照从上往下的顺序来匹配,一旦匹配到了就不继续匹配了,所以拦截规则的顺序不能写错。