[Logo] Mentawai Forum - Mentawai Web Framework
  [Search] Search   [Recent Topics] Recent Topics   [Members]  Member Listing   [Groups] Back to home page 
[Register] Register / 
[Login] Login 

Forum Read-Only! Check the new site and forum here!

Mentawai 1.1 vai suportar Autorização !!!  XML
Forum Index -> Comentários Gerais
Author Message
saoj



Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline

Com a ajuda do André finalizamos o esquema de autorização.

Estou disponibilizando o exemplo Authorization.war e o mentawai.jar com o código, que tb está no CVS.

Para configurar o GroupManager.java ficou assim: (note que nada impede alguém de estender GroupManager para pegar essas configurações do banco ou de um arquivo!)

Code:
 public class ApplicationManager extends org.mentawai.core.ApplicationManager {
     
     public void init(Context application) {
         GroupManager gm = new GroupManager();
         
         Group admins = new Group("admins");
         admins.addPermission("read").addPermission("write").addPermission("delete");
         gm.addGroup(admins);
         
         Group users = new Group("users");
         users.addPermission("read");
         gm.addGroup(users);
         
         GroupManager.setInstance(application, gm);
     }
 	
     public void loadActions() {
         // ...		
     }
 }
 
 



Para dizer para o sistema quais são os grupos do usuário, deve-se utilizar a função de BaseLoginAction setUserGroups.

Aguardo comentários...


 Filename Authorization.war [Disk] Download
 Description
 Filesize 165 Kbytes
 Downloaded:  373 time(s)

 Filename mentawai.jar [Disk] Download
 Description
 Filesize 175 Kbytes
 Downloaded:  478 time(s)


Sergio Oliveira

saoj



Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline

Primeiro comentário:

Qual nome é melhor:

GroupManager ou AuthorizationManager ???


Sergio Oliveira

passos


[Avatar]

Joined: 23/07/2005 16:04:09
Messages: 48
Offline

Prefiro: AuthorizationManager

A programação hoje é uma corrida entre os engenheiros de software que lutam para construir programas maiores e mais à prova de idiotas e o universo tentando produzir idiotas maiores e melhores. Até então, o universo está vencendo (Rick Cook)
fcruz



Joined: 28/07/2005 15:23:28
Messages: 7
Offline

bom.. só nao entendi uma coisa ainda... talvez por falta de conhecimento do framework mesmo

como isso vai funcionar?

as permissões são para acessar os Actions?
aonde está a associação das permissões(na verdade dos grupos né..) com os actions? hehe


[]´s
[MSN]
saoj



Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline

Eu não postei o código todo, por isso que vc não entendeu.

Faz o seguinte: Baixa o código Authorization.war que contem o exemplo prático. Descompacte ele e veja os códigos. Vc vai entender tudo. É simples !!!


Sergio Oliveira

andredelorme



Joined: 20/07/2005 11:41:46
Messages: 51
Offline

Sergio,

Quanto ao nome, também prefiro AuthorizationManager, porém como o que registramos nele são grupos, talvez o nome atual seja mais adequado. AuthorizationManager, seria bom para, se no futuro novas funcionalidades fossem adicionadas.

Acho que está bem interessante esse esquema de Autorização. Ainda estou analisando, mas já tenho uma consideração: A página deleted.jsp do exemplo, poderia ter a TAG <mtw:requiresAuthorization />. E quando usarmos essa TAG precisaremos também da TAG <mtw:requiresAuthentication />?

Na prática não tem sentido eu adicionar um filtro de autorização colocando grupos e permissões, já que não conseguimos associar uma permissão diretamente a um usuário, certo?

Ainda não testei as novas funcionalidades, pois o projeto que estou usando para testes não requer controle de autorização. Vou iniciar um outro que necessita, e poderei te dar um retorno mais detalhado.

De qualquer forma analisando o código disponível no CVS, me parece que está tudo muito bom.

Parabéns!


André Delorme
saoj



Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline

andredelorme wrote:

Quanto ao nome, também prefiro AuthorizationManager, porém como o que registramos nele são grupos, talvez o nome atual seja mais adequado. AuthorizationManager, seria bom para, se no futuro novas funcionalidades fossem adicionadas.
 


Vou mudar para AuthorizationManager!

andredelorme wrote:

Acho que está bem interessante esse esquema de Autorização. Ainda estou analisando, mas já tenho uma consideração: A página deleted.jsp do exemplo, poderia ter a TAG <mtw:requiresAuthorization />. E quando usarmos essa TAG precisaremos também da TAG <mtw:requiresAuthentication />?
 


Para não complicar as coisas, eu fiz o tag de autorização totalmente independente do tag de autenticação, logo vc precisa usar os dois se quiser testar se o usuário está autenticado e autorizado.

Inicialmente eu pensei em colocar o check de autorização junto com o tag de autenticação para evitar ter que usar mais um tag, mas isso iria complicar o código. Vc acha muito ruim ter que usar ambos os tags ?? Veja abaixo:
Code:
 <mtw:requiresAuthentication />
 <mtw:requiresAuthorization groups="admins" />
 


Acho que apesar de mais verbose (longo), fica mais claro o que está acontecendo. O que vc acha?

Quanto ao deleted.jsp, acho que vc tem razão! Eu deixei toda desprotegida mas o certo seria proteger. Se bem que se alguém acessar essa página diretamente, vai ver uma mensagem sem efeito algum, mas não custa proteger como vc falou...

andre wrote:

Na prática não tem sentido eu adicionar um filtro de autorização colocando grupos e permissões, já que não conseguimos associar uma permissão diretamente a um usuário, certo?
 


Certo. Não faz muito sentido um tag ou um filtro que cheque simultaneamente por groups e permissão. Vc até pode fazer isso que o tag/filtro vai checar por ambas as condições para liberar o cara, mas é meio esquisito esse uso. O mais comum é autorizar ou por grupos ou por permissão.

Qual a vantagem de ligar uma permissão diretamente a um usuário ???? Acho que através desse esquema de usuarios -> grupos -> permissões fica totalmente flexível já que um usuário pode pertencer a N grupos.

Obrigado pela ajuda André e fique a vontade para dar mais sugestões!




Sergio Oliveira

andredelorme



Joined: 20/07/2005 11:41:46
Messages: 51
Offline

saoj wrote:
Vc acha muito ruim ter que usar ambos os tags ?? 

Acho que não tem problema. Talvez no futuro, se der, coloque a tag de autorização para verificar a autenticação.
Fiquei com uma dúvida, ser que podemos fazer o controle de autorização se o controle de autenticação? Se sim, talvez o controle de autenticação passe a ser desnecessário, uma vez que o de autorização suprirá os dois.

A consideração sobre a página deleted.jsp, é mais uma questão de ilustração. Vi que na página protected.jsp você usou as TAGs, porém não há links para essa página no exemplo.

saoj wrote:
Qual a vantagem de ligar uma permissão diretamente a um usuário ???? 

Não há vantagens, o que quis foi apenas que você confirmasse minha interpretação.


André Delorme
saoj



Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline

andredelorme wrote:
Fiquei com uma dúvida, ser que podemos fazer o controle de autorização se o controle de autenticação? Se sim, talvez o controle de autenticação passe a ser desnecessário, uma vez que o de autorização suprirá os dois.
 


Algumas pessoas vão querer usar só autenticação ignorando a autorização, logo melhor não.

Andre wrote:

Vi que na página protected.jsp você usou as TAGs, porém não há links para essa página no exemplo.
 


A protected.jsp é para ilustrar o conceito de Redirect After Login, que é bem útil e interessante. Repare que a tag dessa página tem um atributo redir="true". Se vc tenta acessar ela e não está logado, vc cai na página de login. Depois se vc se autentica com sucesso, ao invés de cair na welcome.jsp vc cai nela direto !!! (Mais info sobre isso em http://mentawai.lohis.com.br/authentication.jsp)

Sergio Oliveira

passos


[Avatar]

Joined: 23/07/2005 16:04:09
Messages: 48
Offline

To pensando em fazer um exemplinho extendendo GroupManager pra pegar as polices do banco de dados.

A programação hoje é uma corrida entre os engenheiros de software que lutam para construir programas maiores e mais à prova de idiotas e o universo tentando produzir idiotas maiores e melhores. Até então, o universo está vencendo (Rick Cook)
saoj



Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline

É uma boa. Só pega o jar novo com o nome novo que é AuthorizationManager.

E depois não esquece de postar aqui o seu código...

 Filename mentawai.jar [Disk] Download
 Description
 Filesize 175 Kbytes
 Downloaded:  438 time(s)


Sergio Oliveira

 
Forum Index -> Comentários Gerais
Go to:   
Powered by JForum 2.1.6 © JForum Team