Dica de Grails #4 – Simulando a autenticação no Spring Security Core em seus testes integrados

Dica de Grails #4 – Simulando a autenticação no Spring Security Core em seus testes integrados

Na nossa primeira dica de Spring ensinamos como simular a autenticação no ambiente de testes. Tal como prometido, agora vamos ensinar como realizar esta mesma tarefa no Grails 3.x.

É um procedimento bastante simples, e que ficará bem mais fácil pois você vai usar o código fonte que disponibilizamos para você. Sendo assim vamos direto ao procedimento.

1 – Descubra qual a versão do Spring Security está sendo usada no seu projeto

Execute o comando grails dependency-report. Ele irá gerar uma saída contendo todas as dependências usadas em seu projeto.  Como verá, é gerada uma saída muito longa. Facilite sua vida direcionando-a para um arquivo, tal como no exemplo a seguir:

grails dependency-report > arquivo

Se estiver usando Linux, nem precisa direcionar a saída, execute o comando a seguir para descobrir a versão do Spring Security:

grails dependency-report | grep spring-security-core

2 – Inclua as bibliotecas de teste do  Spring Security no arquivo build.gradle

Em nosso exemplo, estamos usando a versão 4.1.3.RELEASE. Veja como ficou a inclusão dentro do bloco dependencies:

compile "org.springframework.security:spring-security-test:4.1.3.RELEASE"

3 – Use o nosso serviço!

Para facilitar a sua vida, deixamos preparado um serviço que você deverá alterar muito pouco em sua aplicação. Você pode obtê-lo neste repositório que disponibilizamos no GitHub.

O nome que propusemos no serviço é MockSecurityService, e tudo o que você precisa fazer é chamar a função mockUsuario, que recebe como parâmetro o usuário que deveria estar autenticado nos seus testes de integração e a lista de permissões que este usuário deverá possuir durante a execução dos testes, tal como exposto no exemplo abaixo:

// o usuário que possui acesso a tudo!
mockService.mockUsuario(Usuario.findByUsername('admin'), Permissao.list())

Altere à vontade o código fonte que disponibilizamos para que possa ser usado em seus testes!

Vocês não explicaram como isto funciona!

Explicamos sim: leia a nossa primeira dica de Spring. E uma dica final: quer dominar o Grails? Conheça as tecnologias nas quais ele se baseia: Spring, Hibernate e todas as outras.

Posts Relacionados