quinta-feira, 7 de fevereiro de 2019

Spring Security Oauth2 com Ldap - Resource Server

No post anterior (link), criamos o projeto para a geração dos token com o Spring Security Oauth2. Agora vamos criar o projeto que irá conter um Controller restringindo na operação "/test" somente usuários que tiver a role ROLE_DEVELOPERS.

Vamos a configuração do projeto. Crie um projeto, e no pom.xml acrescente as seguintes dependências:


Crie uma classe para as configurações de base de dados, ex.: JdbcConfiguration


Crie uma classe que vai estender a classe ResourceServerConfigurerAdapter e iremos sobrescrever os 2 métodos configure. Nestes métodos estarão as configurações necessárias para a validação do token, clientId e do usuário logado e as regras do HTTP Security. Ex.: AuthorizationClientConfiguration

Acrescente a notação @EnableResourceServer para habilitar o filtro Spring Security que autentique as request por meio do token do Oauth2.


Observe que utilizamos o bean TokenStore configurado na classe JdbcConfiguration.

Crie uma classe que vai estender a classe GlobalMethodSecurityConfiguration e iremos sobrescrever 1 método. Ex.: MethodSecurityConfiguration

Acrescente a notação @EnableGlobalMethodSecurity para habilitar a segurança do método global Spring Security.


Crie uma classe que vai implementar a classe WebMvcConfigurer. Ex.: ResourceServerWebConfiguration

Acrescente a notação @EnableWebSecurity para ter as configurações do Spring Security.


Agora vamos criar o Controller, crie uma classe ex.: TestController, acrescente a notação @Controller. E crie um método conforme o exemplo. O ponto principal é a notação @PreAuthorize, onde definimos os scopes e roles que terão permissão de execução.


Vamos ao testes.
User: developer

Gerando um token:


Executando o método /test


User: tester


Executando o método /test e acesso negado:


Log:

O projeto deste post está no meu github link.

Nenhum comentário:

Postar um comentário