在Spring Security Java Config中
protected void configure(HttpSecurity http) throws Exception {
http.antMatcher("/guest/**").authenticated;
}
如果我希望允许同一个网址访问特定主体或用户,该怎么办?
其他认证需要。有可能吗?
答案 0 :(得分:0)
如果您想完全绕过某些网址的安全检查,可以执行以下操作:
@Override
public void configure(WebSecurity web) throws Exception {
// configuring here URLs for which security filters
// will be disabled (this is equivalent to using
// security="none")
web
.ignoring()
.antMatchers(
"/guest/**"
)
;
}
这相当于以下XML代码段:
<sec:http security="none" pattern="/guest/**" />
答案 1 :(得分:0)
两种方法;首先,使用像这样的HttpSecurity#not()来阻止匿名用户;
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/guest/**")
.not().hasRole("ANONYMOUS");
// more config
}
或者使用类似ROLE_VIEW_GUEST_PAGES的内容,这些内容会根据UserDetailsService中的用户类型添加。这样,IMO可以让您更好地控制谁看到访客页面。
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/guest/**")
.hasRole("VIEW_GUEST_PAGES");
// more config
}