pessoal, to fazendo um sistema em java, e esse sistema tera autenticação com usuario e senha cadastrados no banco de dados(MySql), e esses usuario terão acesso administrador ou limitado, exemplo se apertar um menu e o usuario for limitado, e estiver como negado aquele menu para aquele usuario, devera aparecer acesso negado, e assim por diante para acesso permitido. enfim como posso fazer isso?
Olha,voce pode usar JAAS.
Você poderá fazer de forma declarativa (no web.xml) a autenticação e autorização(da navegação).
É bem simples.de uma pesquisada aí que acha fácil um tutorial.
Se você tem o usuario em banco de dados, o então bastará criar um “realm jdbc”.
é uma sugestão ok.E é fácil.
[]
É sistema WEB? O Tomcat gerencia autenticação e autorização sozinho. Basta configurá-lo para tal. Veja o livro Head First Servlets & JSP 2nd Edition. O capítulo de segurança detalha isso passo a passo. É bem fácil.
cara naum eh web naum, e desktop, tipo o que eu quero, quero criar usuario e senha, e que esses usuarios cadastrados tenha um acesso restrito, exemplo eu tenho no sistema um botao que abrira uma janela de LUCRO, certo, ai quero que o usuario limitado naum acesse, entendeu? tipo e uma classe que faz essa restrição enfim, preciso de um direção
cara naum eh web naum, e desktop, tipo o que eu quero, quero criar usuario e senha, e que esses usuarios cadastrados tenha um acesso restrito, exemplo eu tenho no sistema um botao que abrira uma janela de LUCRO, certo, ai quero que o usuario limitado naum acesse, entendeu? tipo e uma classe que faz essa restrição enfim, preciso de um direção.
Boa madrugada Galera !
Olha se é desktop, não sei se tem algo ± pronto como JAAS, mas acho que não entendi muito bem sua duvida.
É na lógica a implementar ? Ou quer saber mesmo se existe algo como JAAS para utilizar em desktop ?
Entendo que você vai ter uma tela de login que irá pesquisar o usuário e a senha num banco de dados, se ele existe e a senha esta correta deveria retornar um perfil de administrador ou acesso restrito.
Tendo isso em cada opção do menu ou nas telas teria uma validação do perfil para saber se o usuario tem acesso ou não…
Bom de qualquer forma acho que se postar o codigo ou explicar melhor em que ponto esta sua dúvida será mais facil ajudar.
Obrigado.
[]s
Para desktop eu nunca ví nada parecido com o JAAS, mas a MUITO tempo atrás eu precisei implementar algo assim.
Basicamente eu tinha os menu (JMenu e JMenuItems) todos cadastrados em uma base de dados e eles tinham as flags de permissão. Quando o usuário entrava no sistema (depois do Login), eu tinha uma classe que percorria todo o JMenu/JMenuItems e verificava se o usuario logado tinha permissão ou não, caso negativo, ele fazia um hidden no JMenuItem.
Tinha uma tela de “administração”, onde eu poderia criar novos MENUs e associar permissão a eles. Enfim, foi um trabalho “caseiro” mas que funciona até hoje.
Foi mal galera.Achei que era web.Então esquece o JAAS.
Boa tarde Galera !
Jair Rillo Junior
Também tenho um implementado dessa forma…
Em outro deixei todos os menus fixos e cadastrei no banco o perfil e o que ele tinha acesso.
Nesse caso na verdade o nivel de acesso era mais detalhado, então por exemplo, um perfil poderia ter acesso a uma tela para consultar um dado, mas se clicasse em “Novo registro” daria acesso negado.
Bom, mas o principío é o mesmo, só que quando logava no Usuario tinha um atributo Perfil e no Perfil tinha uma colection com os acessos…
Não sei se é a melhor maneira, mas na época achei que era melhor que ficar fazendo select no banco toda hora… bom não sei, mas como no seu caso, é caseiro, mas esta la rodando até hj… rs.
[]s
luizgomaciel
Precisei fazer algo do tipo uma vez em PHP, minha lógica foi a seguinte:
Criei uma rotina que me apresentava todas as rotinas do sistema
Selecionava o usuário
E marcava em checkbox o que ele teria ou não nos menus
Criei um tabela no meu banco só para gravar isso, codigo de usuário e codigo de rotina
Ao fazer login o sistema fazia esse select dos códigos das rotinas de acordo com o codigo de usuário logado, e exibia os links no meu menu somente das rotinas que o cara tinha acesso. Era um projeto Web mas acho que dá pra adaptar a idéia.
Espero ter ajudado
[quote=Jhonny Oliveira]luizgomaciel
Precisei fazer algo do tipo uma vez em PHP, minha lógica foi a seguinte:
Criei uma rotina que me apresentava todas as rotinas do sistema
Selecionava o usuário
E marcava em checkbox o que ele teria ou não nos menus
Criei um tabela no meu banco só para gravar isso, codigo de usuário e codigo de rotina
Ao fazer login o sistema fazia esse select dos códigos das rotinas de acordo com o codigo de usuário logado, e exibia os links no meu menu somente das rotinas que o cara tinha acesso. Era um projeto Web mas acho que dá pra adaptar a idéia.
Espero ter ajudado[/quote]
entaum cara, como faço esse eskema de rotina, exemplifica…
No meu projeto cada rotina do sistema teria um código, vamos supor: Cadastro de Usuário = codigo 123 , Impressão de NF = codigo 587 e assim vai…
Em PHP foi fácil pelo seguinte, no Menu que ficava do lado esquerdo da tela eram apenas Links para as páginas que contiam a determinada rotina
Eu tinha uma tabela que continha o cadastro das rotinas: Código, Descrição, Link
Outra tabela continha o codigo do usuário, o codigo da rotina e se poderia acessar (SIM ou NÃO), ou seja, se eu quero que o usuário com código 15 tenha acesso a rotina 123, insiro nessa tabela (eu a chamada de usu_acessos) o registo 15 -> usuário, 123 -> rotina e S -> acesso permitido.
Na hora de montar o menu fazia um select (com JOIN) retornando a descrição e os links das rotinas que cada usuário tem acesso. Com a ajuda do foreach do PHP foi fácil.
Para controlar esses acessos criei um rotina que escolho o usuário e o sistema me mostra todas as rotinas do sistema com um checkbox ao lado, marcado significava que o cara tinha acesso. Se eu quizesse que o usuário 15 agora tivesse acesso também a rotina 587 era só marcar o checkbox correspondente que o sistema iria fazer o insert na tabela com o cod de usuario, cod de rotina e permissão (S) na tabela usu_acessos. Para retirar o acesso não precisei apagar o registro apenas marcar a permissão como N.
Não sou muito bom para explicar minhas idéias, mas acho que é possível sim adaptá-la para aplicativos desktop.