Tava lendo um artigo na net, e achei que poderia ser interessante pra quem quer dar uma estudada e analisar o sistema que o carinha fez, até mesmo pra descobrir falhas e invadir.
---
Trabalho da Disciplina: Segurança SOA
Prof. Fabio Sakamoto
MBA em Desenvolvimento de Aplicações Java - SOA / FIAP
22/04/2012
Robson de Sousa Martins
---
Download do código-fonte:
Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... (ZIP ~1,9MB)
---
Tecnologias empregadas:
JAAS;
Hash Criptográfico;
JBoss;
PrimeFaces/JSF;
JPA;
Banco de Dados MySQL.
---
Enunciado:
Criar um projeto web utilizando a segurança provida pelo JAAS para validar usuário e senha (criptografada), para a execução das seguintes funcionalidades:
Cadastrar funcionário;
Promover funcionário para gerente;
Logout de usuário.
Este projeto deve ter os perfis de acesso:
funcionário;
gerente.
Sendo que:
A funcionalidade (1) seja acessada pelo funcionário e gerente.
A funcionalidade (2) seja acessada apenas pelo gerente.
A autenticação e a autorização devem ser feitos por uma classe que implemente uma segurança customizada com criptografia.
---
Arquivos do Pacote ZIP:
AvaliacaoJAAS.war: Projeto Java Web para o Eclipse, implementando a segurança com JAAS. Deve rodar num Server JBoss 6.1 corretamente configurado.
AvaliacaoJAAS_DatabaseCustom.zip: Projeto Java para o Eclipse, contendo a implementação da classe de segurança customizada. Deve ser feito o deploy dessa classe para o JBoss como JAR.
AvaliacaoJAAS.sql: Script para criar o schema e as tabelas no banco de dados MySQL.
JBossServerConfig.zip: Contém os arquivos de configuração necessários para o JBoss 6.1.
---
Detalhes sobre a Implementação:
Banco de Dados:
MySQL
Schema: seguranca
User: root / Senha: fiap
Configurado no arquivo seguranca-ds.xml (deve ir dentro do JBoss, no subdiretório deploy).
O Script do banco de dados já carrega uma base inicial, que contém os seguintes usuários fictícios:
A persistência dos dados é realizada via JPA.
Na classe GenericDAO, existe um atributo 'debugInfo', que pode ser alterado para true para imprimir no console as informações de debug (default = true).
Segurança JAAS:
A segurança JAAS é configurada no JBoss através do arquivo login-config.xml (deve ir dentro do JBoss, no subdiretório conf).
A classe contida no Projeto AvaliacaoJAAS_DatabaseCustom.zip, implementa uma segurança customizada em Banco de Dados com criptografia (hash) de senhas. Essa classe é a SegurancaDatabaseCustom.
Ela foi implementada a partir da classe DatabaseServerLoginModule, que já possui tudo o que é necessário para o acesso ao banco de dados pelo JAAS, simplificando o desenvolvimento.
As tabelas no banco de dados também possuem uma estrutura customizada nesse exercício.
Há duas tabelas, a user e a role, que representam, respectivamente, uma lista de usuários e uma lista de possíveis roles (papéis).
Interface Web com o Usuário:
A aplicação Web foi desenvolvida com o uso de Primefaces e JSF, e a segurança JAAS foi configurada sobre essa aplicação.
Há duas páginas principais:
cadastrar.jsf: Exibe o cadastro de usuários.
As permissões dessa página são:
Funcionário: pode alterar cadastro de funcionários, adicionar funcionários, remover funcionários.
Gerente: pode alterar cadastro de funcionários e gerentes, adicionar funcionários, remover funcionários e gerentes.
promover.jsf: Exibe a tela de promoção de funcionários para gerentes.
Somente um gerente pode acessar essa página.
Para ambos os papéis (funcionário e gerente) é possível realizar logout (sair da aplicação) e alterar a sua própria senha.
---
Detalhes de Uso:
Configurar JBoss com os arquivos XML e a lib do conector MySQL;
Rodar o script do banco de dados MySQL (user: root, senha: fiap);
Importar projetos no eclipse;
Exportar projeto AvaliacaoJAASDatabaseCustom como JAR para o diretório deploy do JBoss;
Rodar aplicação AvaliacaoJAAS no servidor JBoss;
Acessar as páginas:
Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
e efetuar login com um dos usuários presentes na base de dados.
---
Versões das ferramentas e bibliotecas utilizadas:
Eclipse 3.6
Java JDK 1.6
Primefaces 3.2
JBoss 6.1
MySQL 5.5
---
Trabalho da Disciplina: Segurança SOA
Prof. Fabio Sakamoto
MBA em Desenvolvimento de Aplicações Java - SOA / FIAP
22/04/2012
Robson de Sousa Martins
---
Download do código-fonte:
Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... (ZIP ~1,9MB)
---
Tecnologias empregadas:
JAAS;
Hash Criptográfico;
JBoss;
PrimeFaces/JSF;
JPA;
Banco de Dados MySQL.
---
Enunciado:
Criar um projeto web utilizando a segurança provida pelo JAAS para validar usuário e senha (criptografada), para a execução das seguintes funcionalidades:
Cadastrar funcionário;
Promover funcionário para gerente;
Logout de usuário.
Este projeto deve ter os perfis de acesso:
funcionário;
gerente.
Sendo que:
A funcionalidade (1) seja acessada pelo funcionário e gerente.
A funcionalidade (2) seja acessada apenas pelo gerente.
A autenticação e a autorização devem ser feitos por uma classe que implemente uma segurança customizada com criptografia.
---
Arquivos do Pacote ZIP:
AvaliacaoJAAS.war: Projeto Java Web para o Eclipse, implementando a segurança com JAAS. Deve rodar num Server JBoss 6.1 corretamente configurado.
AvaliacaoJAAS_DatabaseCustom.zip: Projeto Java para o Eclipse, contendo a implementação da classe de segurança customizada. Deve ser feito o deploy dessa classe para o JBoss como JAR.
AvaliacaoJAAS.sql: Script para criar o schema e as tabelas no banco de dados MySQL.
JBossServerConfig.zip: Contém os arquivos de configuração necessários para o JBoss 6.1.
---
Detalhes sobre a Implementação:
Banco de Dados:
MySQL
Schema: seguranca
User: root / Senha: fiap
Configurado no arquivo seguranca-ds.xml (deve ir dentro do JBoss, no subdiretório deploy).
O Script do banco de dados já carrega uma base inicial, que contém os seguintes usuários fictícios:
A persistência dos dados é realizada via JPA.
Na classe GenericDAO, existe um atributo 'debugInfo', que pode ser alterado para true para imprimir no console as informações de debug (default = true).
Segurança JAAS:
A segurança JAAS é configurada no JBoss através do arquivo login-config.xml (deve ir dentro do JBoss, no subdiretório conf).
A classe contida no Projeto AvaliacaoJAAS_DatabaseCustom.zip, implementa uma segurança customizada em Banco de Dados com criptografia (hash) de senhas. Essa classe é a SegurancaDatabaseCustom.
Ela foi implementada a partir da classe DatabaseServerLoginModule, que já possui tudo o que é necessário para o acesso ao banco de dados pelo JAAS, simplificando o desenvolvimento.
As tabelas no banco de dados também possuem uma estrutura customizada nesse exercício.
Há duas tabelas, a user e a role, que representam, respectivamente, uma lista de usuários e uma lista de possíveis roles (papéis).
Interface Web com o Usuário:
A aplicação Web foi desenvolvida com o uso de Primefaces e JSF, e a segurança JAAS foi configurada sobre essa aplicação.
Há duas páginas principais:
cadastrar.jsf: Exibe o cadastro de usuários.
As permissões dessa página são:
Funcionário: pode alterar cadastro de funcionários, adicionar funcionários, remover funcionários.
Gerente: pode alterar cadastro de funcionários e gerentes, adicionar funcionários, remover funcionários e gerentes.
promover.jsf: Exibe a tela de promoção de funcionários para gerentes.
Somente um gerente pode acessar essa página.
Para ambos os papéis (funcionário e gerente) é possível realizar logout (sair da aplicação) e alterar a sua própria senha.
---
Detalhes de Uso:
Configurar JBoss com os arquivos XML e a lib do conector MySQL;
Rodar o script do banco de dados MySQL (user: root, senha: fiap);
Importar projetos no eclipse;
Exportar projeto AvaliacaoJAASDatabaseCustom como JAR para o diretório deploy do JBoss;
Rodar aplicação AvaliacaoJAAS no servidor JBoss;
Acessar as páginas:
Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
e efetuar login com um dos usuários presentes na base de dados.
---
Versões das ferramentas e bibliotecas utilizadas:
Eclipse 3.6
Java JDK 1.6
Primefaces 3.2
JBoss 6.1
MySQL 5.5