Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Utilização de Perfis no Spring Security

Olá, sei que podemos tratar o comportamentos de acesso para algum recurso com a utilizaççao de perfis e implementando as regras na camada de negócio, porém no UsernamePasswordAuthenticationToken é enviado os perfis de usuario como argumento, qual seria a utilidade ? é possivel também configurar no Spring Security o acesso as uris para determinados perfis ?

Obrigado.

2 respostas

Oi Osnir

Usando spring security é possível limitar acesso às URIs utilizando roles, por exemplo:

@Configuration
@EnableWebSecurity
public class SecSecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
          .authorizeRequests()
          .antMatchers("/admin/**").hasRole("ADMIN");
    }
    ...
}

Nesse caso, só quem tem a Role "ADMIN" consegue acessar qualquer URL com path "/admin/**"

Segue um tutorial interessante de como fazer: https://www.baeldung.com/spring-security-expressions-basic

solução!

Oi Osnir,

O UsernamePasswordAuthenticationToken é para indicar ao Spring quem é o usuário autenticado no sistema no momento da requisição, e por isso passamos o username e os roles do usuário, para que o Spring saiba quais as permissões corretas dele.

É possível filtrar as URLs por perfil na classe SecurityConfigurations:

.antMatchers(HttpMethod.POST, "/topicos").hasRole("ADMIN")

Bons estudos!