Spring Security fullAuthenticated() 和 hasRole("ADMIN")

Lea*_*mas 5 java spring spring-security

我想保护我的应用程序,以便任何经过admin完全身份验证的人都可以访问某些 URL,并且管理员用户也可以访问 URL,并且也完全经过身份验证。

但是现在,我无法设法找到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");
}
Run Code Online (Sandbox Code Playgroud)

Sac*_*wgi 3

你可以这样写:

antMatchers("/api/get-data").access("isFullyAuthenticated() 和 hasRole('ROLE_BANNED')")

这就像您在 xml 文件中定义时编写访问权限一样。这里也是一样的。

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

如需更多说明,请阅读