Есть ли способ смешать конфигурацию Java Spring-Security и аннотацию @secured? - PullRequest
0 голосов
/ 10 апреля 2019

Я настраиваю весеннюю защиту для веб-приложения. Я хочу создать глобальные правила безопасности (разрешить всем аутентифицированным пользователям в GET и разрешать только с ролью ADMIN в других методах http) и добавить пользовательские правила в конечные точки с аннотацией @Secured.

Когда я выполняю настройку и @Secured аннотация, как у этого пользователя с только ролью, SUPER_USER не может получить доступ к этой конечной точке

override def configure(http: HttpSecurity): Unit = {
    http
      .sessionManagement()
      .sessionCreationPolicy(SessionCreationPolicy.STATELESS)
      .and()
      .authorizeRequests()
      .antMatchers(HttpMethod.GET, ALL)
      .permitAll()
      .and()
      .authorizeRequests()
      .antMatchers(ALL).hasRole("ADMIN")
  }
@DeleteMapping(value = Array("/{id}"))
@Secured(Array("SUPER_USER"))
def delete(@PathVariable("id") id: String): Unit = {...}

Я ожидаю иметь глобальные правила безопасности и пользовательские правила с @Secured. Есть ли способ сделать это?

1 Ответ

0 голосов
/ 10 апреля 2019

Вы можете использовать @ PreAuthorize .Это решит вашу проблему.

@PreAuthorize("hasRole('" + <Your Role> + "')")
...