Spring Security Java Config允许匿名用户使用相同的URL,并允许其他人进行身份验证

时间:2017-07-06 13:12:08

标签: spring spring-security

在Spring Security Java Config中

protected void configure(HttpSecurity http) throws Exception {

      http.antMatcher("/guest/**").authenticated;

}

如果我希望允许同一个网址访问特定主体或用户,该怎么办?

其他认证需要。有可能吗?

2 个答案:

答案 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的内容,这些内容会根据UserDetailsS​​ervice中的用户类型添加。这样,IMO可以让您更好地控制谁看到访客页面。

@Override
protected void configure(HttpSecurity http) throws Exception {
    http.authorizeRequests()
        .antMatchers("/guest/**")
            .hasRole("VIEW_GUEST_PAGES");
    // more config
}