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:

0 comments: