| Author |
Message |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/07/2005 13:41:37
|
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 |
Download
|
| Description |
|
| Filesize |
165 Kbytes
|
| Downloaded: |
90 time(s) |
| Filename |
mentawai.jar |
Download
|
| Description |
|
| Filesize |
175 Kbytes
|
| Downloaded: |
97 time(s) |
|
Sergio Oliveira
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/07/2005 13:45:20
|
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
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/07/2005 14:26:24
|
passos
![[Avatar]](/images/avatar/9bf31c7ff062936a96d3c8bd1f8f2ff3.png)
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) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/07/2005 15:26:16
|
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
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/07/2005 15:34:10
|
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
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/07/2005 16:55:22
|
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/07/2005 17:13:45
|
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
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/07/2005 17:48:26
|
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/07/2005 18:03:11
|
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
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/07/2005 11:15:08
|
passos
![[Avatar]](/images/avatar/9bf31c7ff062936a96d3c8bd1f8f2ff3.png)
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) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/07/2005 11:16:58
|
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 |
Download
|
| Description |
|
| Filesize |
175 Kbytes
|
| Downloaded: |
92 time(s) |
|
Sergio Oliveira
|
|
|
 |
|
|