Quando desenvolvemos aplicações web, é quase impossível não nos preocuparmos com segurança, autenticação do usuário, e restrições de acesso.
Desenvolvendo uma aplicação simples, em que o nível de controle se restringe a controlar seu o usuário está autenticado ou não, o Grails nos permite utilizar a variável session e em conjunto com os filters resolver esta questão (este link demonstra como implementar esta situação).
Porém quando nos deparamos, com sistemas maiores, onde necessitamos de um controle mais rigoroso, a implementação acima citada pode não ser suficiente, e apresentar falhas o que pode causar um enorme transtorno para o desenvolvedor.
Uma opção existente para a segurança de sistemas mais complexos, é o plugin SpringSecurity, com ele é possível criar uma aplicação segura em poucos minutos, facilitando e muito a vida do desenvolvedor.
Este plugin tem muitos recursos, neste post vamos implementar um simples controle de autenticação.
Para isso vamos criar a aplicacao de exemplo:
Agora vamos adicionar a dependencia do plugin na sessão plugins do arquivo grails-app/conf/BuildConfig.groovy
da
seguinte forma:
Agora vamos executar o comando abaixo para que o grails efetue o download do plugin e o instale corretamente na aplicação:
O plugin possuí um script para facilitar a sua configuração, e este deve ser executado da seguinte forma:
Conforme é possível observar para executar o script é necessário passar 3 parâmetros. O primeiro diz respeito ao pacote onde serão gerada as duas classes de domínios necessárias, onde a primeira representa o usuário da apliação e a segunda é os papéis(roles) que o usuário pode assumir.
Este script também vai alterar o arquivo grails-app/conf/Config.groovy
adicionando as seguintes linhas:
O plugin também irá criar as views e os controllers para que o usuário efetue o login no aplição.
Agora vamos editar o arquivo grails-app/conf/BootStrap.groovy
para que ao iniciar a aplição seja inserido o usuario
teste e adcionando a role ROLE_ADMIN
a este usuário.
Agora é só executar o comando grails run-app
a aplicação e testar a autenticação do usuário.