| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/02/2012 08:20:59
|
felipegcampos
What is classpath?
Membro desde: 06/02/2012 08:04:35
Mensagens: 8
Offline
|
Olá galera,
Eu sou novo aqui no Fórum então me perdoem se escrever algo de um jeito que vocês não estão acostumados...
A minha dúvida é a seguinte.... na empresa que trabalho temnos nossa aplicação Web toda feita em PHP, e agora ( FINALMENTE ) estamos reescrevendo tudo para JAVA ... Pois bem fizemos o estudo de algumas API's e o projeto está sendo desenvolvido com base em JSF 2 + Spring 3 + JPA ...
Nesse nosso sistema o usuário administrador pode criar perfil de acesso e dizer quais páginas determinado usuário pode acessar ... a questão é que estava pesquisando algumas api's como SpringSecurity e JAAS , mas me pareceu bem engessado, principalmente no caso do JAAS ... O SpringSecurity achei bem bacana mas não consegui achar nada que explicasse uma forma de eu criar esse tipo dinâmico de perfil sem precisar criar as permissões do .xml
Pois bem, então a minha pergunta é... existe uma forma de fazer isso no SpringSecurity ? Se não... alguém teria alguma sugestão e um caminho a me indicar ?
Agradeço desde já,
Abraços
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/02/2012 08:36:52
|
heatcold
JavaGuru
![[Avatar]](/images/avatar/39abd1c6e1d6aa57455adf5eda4325a8.jpg)
Membro desde: 22/09/2006 10:34:26
Mensagens: 240
Offline
|
Você pode customizar o spring security para buscar os usuarios / roles do banco.
http://www.guj.com.br/java/264269-di-spring-3--spring-security-3
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/02/2012 08:38:50
|
felipegcampos
What is classpath?
Membro desde: 06/02/2012 08:04:35
Mensagens: 8
Offline
|
Mas as páginas que as roles vão dar acesso ? Também posso configurar dinamicamente ?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/02/2012 08:45:29
|
edysnipes
JavaEvangelist
Membro desde: 18/01/2007 19:24:05
Mensagens: 367
Localização: Brasília - DF
Offline
|
Tem possibilidade de criar perfis fixo ou o cliente pode selecionar livremente as páginas que o usuário pode acessar?
Até onde eu sei do SpringSecurity os possíveis níveis de acesso tem que estar declarados no xml o que dificultaria inserir dinâmicamente os perfis. O problema é que não teríamos um regra para tratar.
Acho que você deve criar a tabela com os níveis de acesso do usuário:
Ex:
usuario - acesso
01 - administrar.jsf
01 - excluir.jsf
01 - editar.jsf
02 - consultar.jsp
Vou pesquisar e ver se consigo algo.
|
"Transformem os seus arados em espadas e das suas foices façam lanças, diga o fraco: Eu sou forte." (Joel 3.10) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/02/2012 08:51:23
|
heatcold
JavaGuru
![[Avatar]](/images/avatar/39abd1c6e1d6aa57455adf5eda4325a8.jpg)
Membro desde: 22/09/2006 10:34:26
Mensagens: 240
Offline
|
Sim, as página que as roles tem acesso também pode ser configurado.
Segue um exemplo:
http://www.javasimples.com.br/spring-2/spring-security-3-deixando-sua-aplicacao-web-segura
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/02/2012 08:54:50
|
felipegcampos
What is classpath?
Membro desde: 06/02/2012 08:04:35
Mensagens: 8
Offline
|
edy ... o usuário pode criar tanto um novo perfil como inserir as páginas que esse perfil dará acesso, assim basta associar os clientes ao perfil....
Por exemplo, o administrador entra e cria um perfil chamado Apenas_Relatorios , e adiciona acesso aos .jsf apenas de relatórios:
relatorio_1.jsf
relatório_2.jsf
Mas deixa de fora a tela de visulização de Disponibilidades:
disponibilidade_1.jsf
disponibilidade_2.jsf
Porém, tambpém pode acontecer de ele querer que o perfil tenha
relatorio_1.jsf
disponibilidade_1.jsf
E não tenha o resto ? Entendeu ? Bem dinâmico né?
Muito obrigado pela ajuda !
Abraços
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/02/2012 09:02:53
|
felipegcampos
What is classpath?
Membro desde: 06/02/2012 08:04:35
Mensagens: 8
Offline
|
Pelo que vi nesse exemplo ele também da as permissões de cada ROLE no .xml não ?!
Quais páginas serão vistas , no exemplo dele são configuradas no .xml
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/02/2012 10:34:52
|
edysnipes
JavaEvangelist
Membro desde: 18/01/2007 19:24:05
Mensagens: 367
Localização: Brasília - DF
Offline
|
O seu problema é que você não tem ROLE! Não existem regras para os perfis dinâmicos que você quer implementar. Não sei se o SpringS pode te ajudar. Podemos fazer algumas adaptações que vão dar mais trabalho do que benefícios.
Por exemplo você pode criar regras para cada acesso:
regra para relatorio_1.jsf = CONSULTA
regra para relatroio_2.jsf = CONSULTA, GERENCIA
regra para cosulta_simples.jsf = CONSULTA, GERENCIA, DIRETOR
regra para consulta_complexa.jsf = ETC, ETC, ETC
E de acordo com o usuário monta-se o perfil: usuário_X = ROLE_CONSULTA, ROLE_GERENCIA_SIMPLES
Mas isso tudo deve estar previamente no xml.
This message was edited 1 time. Last update was at 06/02/2012 10:35:27
|
"Transformem os seus arados em espadas e das suas foices façam lanças, diga o fraco: Eu sou forte." (Joel 3.10) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/02/2012 12:06:02
|
felipegcampos
What is classpath?
Membro desde: 06/02/2012 08:04:35
Mensagens: 8
Offline
|
edysnipes wrote:O seu problema é que você não tem ROLE! Não existem regras para os perfis dinâmicos que você quer implementar. Não sei se o SpringS pode te ajudar. Podemos fazer algumas adaptações que vão dar mais trabalho do que benefícios.
Por exemplo você pode criar regras para cada acesso:
regra para relatorio_1.jsf = CONSULTA
regra para relatroio_2.jsf = CONSULTA, GERENCIA
regra para cosulta_simples.jsf = CONSULTA, GERENCIA, DIRETOR
regra para consulta_complexa.jsf = ETC, ETC, ETC
E de acordo com o usuário monta-se o perfil: usuário_X = ROLE_CONSULTA, ROLE_GERENCIA_SIMPLES
Mas isso tudo deve estar previamente no xml.
é realmente ... isso fica meio impossível, é uma aplicação grande e muito maleavel pra fazer algo assim.... tem alguma sugestão ?
Devo fazer com Servlet Filter mesmo pra algo assim ?
|
|
|
 |
|
|