Versões comparadas
Chave
- Esta linha foi adicionada.
- Esta linha foi removida.
- A formatação mudou.
Um sistema com múltiplas aplicações é um sistema onde vários projetos utilizam o mesmo banco de dados e compartilham informações. Como, por exemplo, ao cadastrar um usuário na página do projeto aplicação A e definir que ele terá acesso aos projetos as aplicações A e B, ele poderá realizar o acesso no projeto B a partir de esse usuário passa a ter acesso a diferentes aplicações com um único cadastro.
Inserir fluxogramaImage Added
Figura 1 - Esquema de duas três aplicações que utilizam o mesmo bancoa mesma base de dados
Estrutura de classes
Na figura abaixo são exibidas as classes usadas no Multi aplicações.
A arquitetura das múltiplas aplicações (Figura 2) está diretamente relacionado às Permissões de Segurança do Cronapp, acesse a sua documentação para mais detalhes.
Image Added
Image Removed
Figura 2 - Diagrama de classes
Configuração
O modelo de dados das permissões de segurança consiste dos seguintes tipos de entidade (Figura 2):
Nome da Entidade
Descrição
Representa um objeto do tipo View ao qual você quer aplicar controle de acesso através dos métodos de requisição HTTP.
Relacionamentos entre entidades
Os tipos de entidade são relacionados entre si das seguintes formas:
- Cada
Application
pode ter múltiplosRole
associados. - Cada
Application
pode ter múltiplosSecurable
associados. - Cada
Application
pode ter múltiplosView
associados. - Cada
Application
pode ter múltiplosUser
associados, e cadaUser
pode estar associado a múltiplosApplication
. Esse relacionamento muitos-para-muitos é representado pela entidadeApplicationUser
.
Tabelas
Abaixo são detalhados todos os campos das tabelas usadas pelo sistema Multi Applicações.
Application
Aplicação.
Coluna do Banco
Tipo
Função
Role
Grupo ou Função.
Coluna do Banco
Tipo
Função
Banco de dados
O banco de dados configurado nos projetos modelos não persistem os dados, por isso, é necessário cadastrar outrobanco de dados de qualquer Fabricante, exceto H2. Clique no botão de atalho do Banco de Dados (destaque 1 da Figura 3), depois clique em Novo (2) e preencha os campos com as informações do seu banco. Utilize a documentação Banco de dados para qualquer dúvida. Após criá-lo, o banco de dados ficará disponível na lista (3).
Aviso | ||
---|---|---|
| ||
Após cadastrar o banco no projeto 1, é indispensável utilizá-lo nos outros projetos para ocorrer a integração entre eles. |
Image Added
Figura 3 - Criando banco de dados
Diagrama
Abra o Diagrama de dados (app), selecione o banco vinculado ao diagrama (destaque 1 da Figura 4) e gere a camada de persistência (2). Escolha a opção "Utilizar tabelas existentes" (3), caso contrário, os dados do banco, que estão sendo usados nos outros projetos, podem ser excluídos. Também é possível obter as classes a partir da Engenharia reversa do banco de dados cadastrado.
Repita esse procedimento em todos os projetos.
Image Added
Figura 4 - Gerando camada de persistência no novo banco de dados
Nota | ||
---|---|---|
| ||
Para que a integração seja possível, o diagrama de dados de todos os projetos deve conter as mesmas classes com os mesmo atributos. |
Âncora | ||||
---|---|---|---|---|
|
Em seguida, selecione o menu de contexto da classe Application e clique em
Securable
Permissionável.
Coluna do Banco
Tipo
Função
View
Aplica o controle de acesso aos métodos de requisição HTTP.
Coluna do Banco
Tipo
Função
Application User
Tabela de relacionamento entre Aplicação e Usuários.
Coluna do Banco
Tipo
Função
Configuração
Para utilizar a funcionalidade, é necessário atender alguns requisitos.
- Utilizar o mesmo banco de dados em todos os projetos (não pode ser o banco H2, pois ele não persiste os dados);
- O diagrama de dados dos projetos deve conter as mesmas classes para que a integração entre as funções seja possível.
Gerar CRUD
Após criar o projeto, abra o diagrama de dados app e selecione a classe Application. Clique no botão direito sobre a classe, selecione a opção Criar visão para entidade (destaque 1 da Figura 34.1), selecione , ao abrir a janela Assistente de View pra Entidade, escolha o modelo de formulário Formulário CRUD Web (2) e depois selecione no campo Formulário de Referência a pasta admin (2 (3), selecione o diretório Administrativo (Localização: Formulário/Web/Administrativo/
Tooltip | ||||
---|---|---|---|---|
| ||||
Endereço: |
). Por fim, clique em Avançar até finalizar e depois em Finalizar.
Repita esse procedimento para em todos os projetos.
Image Added
Figura 34.1 - Criando CRUD do permissionáveldas aplicações
Essa página possibilitará consultar as aplicações que estão integradas, ou seja, que estão utilizando o sistema de múltiplas aplicações.
Dica |
---|
Se for necessário criar permissionáveis ou grupos específicos para uma aplicação, isso deve ser feito nas Permissão de Segurança. |
Aplicação
Execute todos os projetos que deseja vincular. Após rodar o projeto A, basta executar a segunda aplicação pela primeira vez que os dados serão atualizados automaticamente no banco de dados, através do conteúdo contido no populate.json (visível apenas no Modo Avançado).
Vincular usuários
Rode as aplicações. Abra uma delas Abra a aplicação A e vá até a página de Usuários. Vamos adicionar Adicione um novo usuário e, no campo Aplicações, basta associar esses permissionáveis (que são associe as aplicações ) e salvar. Por exemplo, o usuário abaixo terá acesso a aplicação Projeto 1 e Projeto 2 (Figura 3.2). Caso o usuário não esteja vinculado com a aplicação, ele nunca irá conseguir fazer o login nessa aplicação.
Figura 3.2 - Vinculando usuários
Testando
A e B (Figura 5) e salve.
Ao escolher as aplicações, o usuário também aparecerá na grade de Usuários das aplicações informadas.
Image Added
Figura 5 - Vinculando aplicações na tela de edição do usuário na aplicação A
Efetuar login
Abra a aplicação B Abra a segunda aplicação e, na tela de Login (Figura 5.1), acesse com os dados do usuário cadastrado na primeira aplicação A.
Image Added
Figura 35.3 - Testando 1 - Efetuando login na aplicação B utilizando o sistema multi aplicações
Se o usuário continuar na página de login e a mensagem do bloco de exceção for informada na tela (Figura 3.3) significa que ele não possui o Permissionável da aplicação.Nesta página
Índice |
---|