Estou em um projeto que deve utilizar: Struts, Hibernate, MySQL…
Nesse projeto deve ser implementado a segurança com base em: Usuários, Grupos, e Permissões.
Exemplo de Grupos: SystemAdmin, Admin, Moderador, Usuario
Cada Grupo tem diversas permissões e cada usuário só pertence a um Grupo apenas.
Qual seria a melhor solução utilizando essas tecnologias para que uma Action ou um JSP possa identificar se o usuário tem permissão ou não para acessar tal página?
Você pode criar um módulo do sistema específico para isso, atrelando o usuário a ‘n’ grupos.(É o que normalmente uso)
Outra opção, dependendo da quantidade de usuários é uma base LDAP.
Ou mesmo se for algo trivial, controla nas roles do container mesmo.
[edit]
Relendo, creio que não entendi direito. Você já tem um controle de ‘roles’ implementado? Se sim, depende da implementação para ser acessado pela Action
Usuário logando no sistema, eu já vou saber de qual grupo ele é…
Para verificar nas JSPs se ele é um Admin por exemplo é simples:
<logic:present name="user" scope="session">
<logic:equal name="user" property="administrator" value="true">
...
</logic:equal>
</logic:present>
Nas Action fazer o controle de roles dá para fazer… verificando se aquele group tem permissão para executar aquela action…
Agora, o problema maior é como verificar isso nas JSPs
Esse livro ensina a criar taglibs.
Head First - JSP & Servlets
Sugestao use um Filter pegue o request
adicione um parametro nele tipo “visible” e mande
seguir em frente na view voce pode fazer a checagem
com <c:if test=“request.parameter.visible”> e mostrar
ou nao o campo… seila…
E se for fazer alguma checagem no Filter mesmo voce
pode redirecionar com o response para uma pagina
estilo “Ooops You Don’t Have Permission To Do That.”
Eu estou implementando através de Filtros… e o Filtro resolve meu problema!
Mas continua a minha dúvida e curiosidade…
Se eu colocar os .JSP dentro do WEB-INF eles estarão protegidos e não poderão ser acessos, a não ser seja através das Actions, confere?
Assim não preciso implementar nenhum código de Authorization dentro dos .JSP
Se alguém puder me responder isso, eu estou por satisfeito!
[quote=the_negao]
Se eu colocar os .JSP dentro do WEB-INF eles estarão protegidos e não poderão ser acessos, a não ser seja através das Actions, confere?
Assim não preciso implementar nenhum código de Authorization dentro dos .JSP
Se alguém puder me responder isso, eu estou por satisfeito![/quote]