Ограничение доступа к определенным методам в классах Controller для вновь представленной роли с использованием Spring Security - PullRequest
0 голосов
/ 22 октября 2018

Каково поведение по умолчанию метода Controller, у которого нет ни @PreAuthorize("hasRole('ROLE_xxxx')"), ни @Secured("ROLE_xxxx") аннотации.
Каким ролям разрешено использовать эти методы?Может ли каждый пользователь, прошедший проверку подлинности, вызывать эти методы?

Учитывая следующий сценарий.
В уже существующем приложении, которое использует Spring Security, мы вводим новый тип роли пользователя, то есть «ROLE_THIRD_PARTY_CONTRACTOR» имы хотим, чтобы они могли войти в систему, но разрешить им доступ только к определенным методам в определенных контроллерах.Как ограничить доступ этих пользователей к методам, которые не используют аннотации @PreAuthorize или @Secured?

1 Ответ

0 голосов
/ 22 октября 2018

вы можете попытаться защитить на уровне http, прежде чем достигнете контроллера.

protected void configure(HttpSecurity http) throws Exception {
    http
        .authorizeRequests()                                                               
            .antMatchers("/resources/**", "/signup", "/about").permitAll()                  
            .antMatchers("/admin/**").hasRole("ADMIN")                                      
            .antMatchers("/db/**").access("hasRole('ADMIN') and hasRole('DBA')")            
            .anyRequest().authenticated()                                                   
        .and()
        // ...
        .formLogin();
}

См .: https://docs.spring.io/spring-security/site/docs/current/reference/htmlsingle/#jc-httpsecurity

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...