Spring Security fullAuthenticated()和hasRole(“ADMIN”)

时间:2016-12-01 19:18:48

标签: java spring spring-security

我希望保护我的应用程序,以便任何完全正确的人都可以访问某些网址,并且管理员用户可以访问admin网址,并完全通过身份验证。

但是现在,我无法找到一种方法来同时使用fullyAuthenticaded() AND hasrole()

@Override
public void configure(HttpSecurity http) throws Exception {
    http
        .requestMatchers()
            .antMatchers("/api/**", "/health")
            .and()
        .authorizeRequests()
            .antMatchers("/health").permitAll()
            .and()
        .authorizeRequests()
            .antMatchers("/api/get-data").fullyAuthenticated()
            .and()
        .authorizeRequests()
            .anyRequest().hasRole("ADMIN");
}

1 个答案:

答案 0 :(得分:3)

你可以这样写:

  

antMatchers(“/ api / get-data”)。access(“isFullyAuthenticated()和hasRole('ROLE_BANNED')”)

这就像在xml文件中定义时编写访问权限一样。同样的事情在这里。

现在,您可以为一个仅使用isFullyAuthenticated的antMatches定义一些url,为另一个具有admin角色且isFullyAuthenticated的antMatches定义一些url。

有关更多说明,请参阅thisthis