Skip to end of metadata
Go to start of metadata

A Permissão de Segurança é uma funcionalidade do CronApp que permite realizar tipos distintos de restrições/permissões de acesso a determinadas páginas ou pastas ou a grupos de usuários. 

Pré-requisitos

Antes de começar a seguir os passos abaixo é preciso ter certeza de que se tem um ambiente minimamente preparado para reproduzir o exemplo. Abaixo estão os requisitos principais.

Requisitos:

  1. Projeto do tipo web criado. Caso haja dúvidas de como criar esse tipo de projeto acesse o link (Criando Projeto Web).

Visão geral: exemplo

Nesse tutorial iremos criar uma pequena aplicação que possuirá 2 grupos de usuários e 2 páginas com permissões de acesso distintas. Além disso, os links de acesso a essas páginas serão restritas por grupos.

Observação

Por padrão, os projetos criados no CronApp começam sempre com o login no sistema, caso necessite que seu projeto tenha páginas públicas, acesse o tutorial: Alterando a página inicial.

Funcionalidades

Com funcionalidade Permissão de Segurança podemos verificar, adicionar, editar e excluir todas as permissões das páginas ou diretórios do sistema; criando Grupos de Acessos e definindo os método (ou verbos HTTP) de acesso ao caminho. (Figura 1)


Figura 1 - Permissão de Segurança

 

Para Acessar a funcionalidade, no menu do Sistema, clique em Ferramentas > Permissão de Segurança. (Figura 2) . 


Figura 2 - Abrindo a Funcionalidade Permissão de Segurança.


Ao clicarmos no botão "Nova Permissão", seremos direcionados para a tela da Figura 3, onde podemos definir o Tipo de permissão (Tabela 1); o caminho (página ou diretório); o Método ou verbo HTTP (GETPOST ou ALL (ambos)) e, caso o Tipo de permissão seja o "hasAuthority", o dropdown "Grupo de acesso" será exibido para que seja selecionado um grupo de usuários do sistema.

Figura 3 - Criando uma nova permissão ao grupo de Administradores à página Teste.view.html.

 

TipoPermissão
permitAllPermite que qualquer usuário acesse esse diretório ou página.
authenticatedPermite que apenas usuários logados no sistema acesse esse diretório ou página.
hasAuthorityPermite que apenas usuários de grupos de acesso específicos acesse esse diretório ou página.
denyAllImpede o acesso de todos os usuários a esse diretório ou página.

Tabela 1 - Tipos de permissões


Quando Criamos um usuário no sistema devemos selecionar um grupo a qual ele pertence e esses grupos são criados em "Grupo de Acesso" da funcionalidade Permissão de Segurança. Clique no botão "Grupo de Acesso" para listar os grupos cadastrados no sistema. Por padrão, um novo projeto sempre começa com o grupo "Administrators". (Figura 4)


Figura 4 - Lista do Grupo de Acesso.


Clique em "Novo Grupo de Acesso" para Adicionar um novo Grupo de Acesso, informando a chave do grupo (nome do atributo) e o seu nome. (Figuras 6 e 7)

Após salvarmos a aba de Permissão de Segurança, os dados alterados ficam armazenados no arquivo SecurityPermission.java (localizado em: Código Fonte / Principal / Códigos Fonte Servidor / auth / permission / ), como mostra a Figura 5. 

 

Figura 5 - Arquivo gerado pela configuração do Permissão de Segurança.

Passo a Passo

1. Criando Grupo de acesso

Com a Funcionalidade Permissão de Segurança aberta, clique no botão "Grupo de Acesso" (Figura 2) para ser direcionado à lista com todos os grupos, clique no botão "Novo Grupo de Acesso" e cadastre os grupos de "Developers" e "Testers", como mostram as Figuras 6 e 7.

Estamos usando as chaves "ROLE_DEVELOPER_NAME" e  "ROLE_TESTER_NAME" só para manter o padrão do sistema, porém não é obrigatório. 

 

 

Nesta Página

 

Figura 6 e 7 - Criação do grupo de desenvolvedores e testadores.

Após cadastrar os 2 grupos, salve a aba de Permissão de Segurança.

Por padrão, todas as páginas criadas dentro do diretório "logged" são pré configuradas para permitir o acesso somente após o usuário logar. Por isso vamos criar um novo diretório em views (botão direito do mouse na pasta views (Novo > Diretórios)) com o nome de Tutorial e criar 2 novas páginas dentro do diretório recém-criado (botão direito do mouse na pasta Tutorial (Novo > Formulário Vazio)) nomeando-as para pagDeveloper pagTester. (Figura 8)

Acesse cada uma das páginas e insira um componente de Título ou Texto para identificá-las.


Figura 8 - Hierarquia criada.

 

Na página home.view.html (localizada em "Código Fonte / Principal / Código fonte Cliente / views / logged /"), selecione o dropdown destinado a usuários administradores e duplique-o (Figura 9, passo 1). Altere o rótulo do novo dropdown para "Acesso" e clique em "Exibir" para listar os subitens (Figura 9, passo 2). 

Figura 9 - Duplicando novo Dropdown.

 

Se deixarmos um link para uma página na qual o usuário não tem permissão ou se o usuário tentar digitar a URL da página, irá aparecer uma mensagem de acesso proibido (erro HTTP 403). (Figura 10) 


Figura 10 - Erro de acesso proibido a uma página.

 

Para evitarmos isso, vamos limitar o acesso aos links também, seguindo os passos da Figura 11:

  1. Selecione o primeiro subitem do novo Dropdown;
  2. Informe como referência a página de desenvolvedores que criamos;
  3. Altere o nome do Conteúdo para "Developer";
  4. Clique no item segurança;
  5. Com a nova janela aberta, selecione o campo "Visível para" para Developers ;
  6. Selecione também campo "Habilitado para" para Developers e
  7. Clique em OK.

Figura 11 - Configurando o subitens do Acesso

 

Faça o mesmo procedimento com o segundo subitem do Dropdown Acesso, só que informando para a página de Testers que também criamos anteriormente.

3. Restringindo acesso às páginas

Acesse novamente a funcionalidade Permissão de Segurança (como informado anteriormente) e adicione permissões às páginas criadas aos seus respectivos grupos, como mostrado nas figuras 11 e 12. 

 

 

Figuras 11 e 12 - Configurando permissão de segurança nas páginas de Desenvolvedores e testadores.

Testando

Salve os arquivos alterados e execute a aplicação (F9) ou Debug (F11). Após abrir a aplicação, informe login e senha "admin" e confirme para acessar a página home.

Clique no Dropdown "Acesso" e verifique que apesar dele estar visível, seus subitens não são mostrados para o usuário Administrador, pois restringimos a outros grupos somente os subitens. (Figura 13)

Figura 13 - Subitens ocultos para o usuário Administrador.


Verificado isso, acesse a página de usuários (Admin > Usuários) e cadastre 2 novos usuários (Figura 15) adicionando para cada usuário um grupo criado anteriormente através do botão "+ Adicionar Função" (Figura 14). 


Figura 14 - Cadastrando o usuário e adicionando ao grupo Testers.



Figura 15 - Usuários cadastrados no sistema.

 

Deslogue do sistema como administrador, acesse como o usuário testador a página de Tester (Acesso > Tester) e verifique que além do subitem "Developer" não aparecer, a página de teste é exibida normalmente. (Figura 16)


Figura 16 - Testando o acesso restrito ao grupo de testadores.