默认情况下禁止访问,除非用户使用Spring Security具有特定角色

时间:2018-04-10 09:31:08

标签: spring-security configuration annotations

我想配置spring-security,以便默认情况下不允许对我的REST端点发出请求,只允许在指定访问条件时进行访问。

我可以进行以下配置,而不是使用@PreAuthorize(" isAuthenticated()")注释每个控制器方法

@Override
protected void configure(HttpSecurity http) throws Exception {
  http.authorizeRequests()
    .anyMatchers("/public/**).permitAll()
    .anyRequest().authenticated();
}

角色是否有类似的配置选项?我希望默认情况下无法访问所有端点,并且必须为每个端点方法指定所需的角色(或者该端点不需要角色)。

这样,如果我忘记指定所需的角色或者不需要角色,那么没有人可以访问。

1 个答案:

答案 0 :(得分:0)

按角色保护api

例如

 http.authorizeRequests()
    .antMatchers("/api/*")
    .access("hasRole('ROLE_USER') or hasRole('ROLE_ADMIN')")