Friday, June 13, 2008

Seam Security

Segurança

A segurança do sistema pode ser feita pela API de segurança do SEAM (Seam Security).
Que fornece autenticação e autorização tanto no domínio quanto nas páginas.
A segurança do Seam fornece um modo simples e outro avançado de operação.
O modo avançado suporta serviço de autenticação e segurança baseada em checagem de perfil usando o JBoss Rules.


Autenticação

As características da autenticação fornecida pelo Seam Security são construidas sobre JAAS(Java Authentication e Authorization Service), e como tal fornece uma API robusta e altamente configurável para autenticação de usuário. Entretanto, para exigencias menos complexas de autenticação o Seam oferece um método muito mais simplificado de autenticação que oculta a complexidade do JAAS.


Autorização
São várias as características fornecidas pelo Seam Security para assegurar o acesso a componentes, métodos e páginas.
A anotação @Restrict pode ser usado a nível de classe ou método.


Segurança na interface com o usuário

O usuário não deve ver opções que ele não tem privilégio de acesso.
O Seam Security permite renderização condicional de seções de uma página ou controles individuais baseado nos privilégios do usuário usando expressões EL.
Ex:

Só exibe o formulário se o usuário estiver logado.


Manager Reports

Só exibe o link se o usuário tiver o perfil “admin”.


Segurança nas páginas

Deve ser usado o arquivo pages.xml para se fazer a segurança de páginas.
Para implementar a segurança basta incluir o elemento na página que requer segurança.
Ex:

#{s:hasRole('admin')}



SSL Security

O Seam inclui um suporte básico para servir páginas sensitivas via o protocolo HTTPS.
Sendo facilmente configurado usando o “schema” no arquvo pages.xml.
Ex:


Esta configuração será automaticamente usada por ambos s:link e s:button. Que irá renderizar o link usando o protocolo correto. Baseado no exemplo anterior, o link a seguir irá usar o protocolo HTTPS porque /login.xhtml está configurado para usar.
Ex:


Para manter o sistema menos vulnerável à sniffing de session id ou a vazamento de dados sensíveis das páginas usando HTTPS para outras páginas usando HTTP.
Deve ser configurado o arquivo components.xml para invalidar a sessão corrente HTTP cada vez que mudar o esquema. Adicionando a linha seguinte:

Wednesday, June 11, 2008

Tutorial JBoss Seam

Nesse tutorial vou mostrar como instalar o eclipse, o JBoss AS, o JBoss Seam, JBoss Tools e criar uma aplicação usando essas ferramentas.

Tutorial JBoss Seam

1 – Introdução

O JBoss Seam é uma emenda como o próprio nome diz, sendo um framework que não consta na especificação oficial JEE 5.
Utilizando a estrutura do Java EE 5 o JBoss Seam é um facilitador da programação para todos os componentes em uma aplicação web.
Focando a produtividade do programador e a escalabilidade da aplicação.
Este tutorial irá explicar como montar o ambiente para desenvolvimento usando o Seam.


2 – Requisitos

JDK (jdk-6u6-windows-i586-p). http://java.sun.com/javase/downloads/index.jsp
Eclipse (eclipse-jee-europa-winter-win32) http://www.eclipse.org/downloads/
JBoss AS (jboss-4.2.2.GA) http://www.jboss.org/jbossas/downloads/
JBoss Seam (jboss-seam-2.0.2.GA) http://www.seamframework.org/Download
JBoss Tools (JBossTools-2.0.1.GA-ALL-win32) http://www.jboss.org/tools/download/index.html


3 – Instalação

1 - Instalar o JDK.
Para instalar o JDK basta rodar o executável.
Segue o link para maiores esclarecimentos:
http://java.sun.com/javase/6/webnotes/install/index.html

2 – Criar uma pasta para o ambiente
Vou criar uma pasta para a instalação do ambiente somente para facilitar na organização.
Crie uma pasta chamada ambiente no diretório C:.
O caminho ficará o seguinte: C:\ambiente

3 – Instalar o eclipse
O eclipse pode ser baixando em uma versão .zip.
Descompacte o eclipse dentro da pasta ambiente.
O caminho ficará o seguinte: C:\ambiente\eclipse

4 – Instalar JBoss AS
Descompacte o JBoss AS dentro da pasta ambiente.
O caminho ficará o seguinte: C:\ambiente\jboss-4.2.2.GA

5 – Instalar JBoss Seam
Descompacte o JBoss Seam dentro da pasta ambiente.
O caminho ficará o seguinte: C:\ambiente\jboss-seam-2.0.2.GA

6 – Instalar o JBoss Tools
Descompacte o JBoss Tools dentro da pasta do ambiente.
O caminho para extrair será o seguinte: C:\ambiente


4 – Configuração

1 – Configurar o Eclipse
Criar uma pasta workspace dentro de ambiente.
O caminho ficará o seguinte: C:\ambiente\workspace
Executar o eclipse c:\ambiente\eclipse\eclipse.
Trocar o workspace para c:\ambiente\workspace
Alterar a perspectiva para Seam.
Window → Open Perspective → Other → Seam.

2 – Configurar o JBoss AS
Window → Preferences → Server → Installed Runtimes → Add
JBoss, a division of Red Hat → JBoss 4.2 Runtime
Altere o home directory para: C:\ambiente\jboss-4.2.2.GA
Configuration: default.

3 – Configurar a visualização do servidor
JBoss Server View → Clicar com o direito → New Server
JBoss AS 4.2 → Next → Next → Finish

4 – Configurar Conectividade
Window → Preferences → Connectivity → Driver Definitions
Hipersonic DB → 1.8 → Add
Hipersonic DB → 1.8 → Hypersonic DB
Driver File(s):
hsqldb.jar → Remove Jar/Zip
Add Jar/Zip C:\ambiente\jboss-4.2.2.GA\server\default\lib\hsqldb.jar
OK


5 – Criação de um projeto

1 – Criar um projeto
File → New → Seam Web Project
Name: agenda
Configurations: Dynamic Web Project with Seam 2.0
Next → Next → Next → Next
Seam runtime: Add
Home Folder: C:\ambiente\jboss-seam-2.0.2.GA
Deploy as: WAR
Database Type: HSQL
Connection profile: HSQL
Finish

2 – Adicionar o projeto ao JBoss
No JBoss Server View
Clique com o direito em JBoss 4.2 Server → Add and remove projects
Agenda → Add → Finish

3 – Iniciar o JBoss
Clique com o direito em JBoss 4.2 Server → Publish
Clique com o direito em JBoss 4.2 Server → Start

4 – Acessar o sistema
Abra um browser e digite: http://localhost:8080/agenda


6 – Conclusão

Com isso temos um ambiente de desenvolvimento gratuito.
E com o poder do Eclipse, JBoss AS, JBoss Seam e JBoss Tools.

7 - Atualização

Para uma versão mais nova do Tutorial JBoss Seam veja o post:
http://silvionetto.blogspot.com/2010/08/ambiente-seam.html

Início do Blog

Nunca imaginava ter um blog.
Mas aqui estou eu, escrevendo na net.
Espero poder ajudar com alguns textos que estarei postando aqui.
Abraços,

Sílvio Netto