SpringSecurity(二十三):authorizeRequests顺序
Posted 刚刚好。
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringSecurity(二十三):authorizeRequests顺序相关的知识,希望对你有一定的参考价值。
我们在使用spring Security时,需要注意authorizeRequests的顺序
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.anyRequest().authenticated()
.antMatchers("/hello").permitAll();
}
由于是按照从上往下顺序依次执行,如上所示,当我们访问/hello时,会发现此时仍然需要登录!
所以我们往往会把.anyRequest().authenticated()放在最后
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/hello").hasRole("USER")
.antMatchers("/hi").hasRole("ADMIN")
.anyRequest().authenticated();
}
如上就表示。访问/hello接口需要USER角色,访问/hi需要ADMIN角色,访问其他接口需要认证。
那么访问/hello和/hi不需要认证吗?
也需要,毕竟只有认证了,我们才能从authentication中获得角色信息!
以上是关于SpringSecurity(二十三):authorizeRequests顺序的主要内容,如果未能解决你的问题,请参考以下文章
C1认证学习二十三二十四二十五(块级元素与行内元素定位浮动)