Olá galera, então estou iniciando em programação java para web.
Fiz alguns cruds aqui já, mas quero saber agora como fica o esquema de autenticação no java e o controle de acesso dos usuários.
Quero que somente usuários com tal perfil tenham acesso a tais telas.
Ex:
Usuario_comum, telas como a de cadastro de usuários ele não pode acessar, só poderá ter acesso a tela de alterar o seu próprio cadastro.
Já um usuário com perfil de administrador pode acessar outras telas.
cara,
Nao espere nada implementado, mas… uma dica é vc ter uma entidade usuario quando tipo de usuario Y acessar os botoes alterar estarao desabilitados, quando usuario X acessar tudo estará habilitado, isso é uma questao de logica mesmo controlada pela tua aplicação nao tem pra onde correr.
att.
E
EmidioNeto
hvivox:
cara,
Nao espere nada implementado, mas… uma dica é vc ter uma entidade usuario quando tipo de usuario Y acessar os botoes alterar estarao desabilitados, quando usuario X acessar tudo estará habilitado, isso é uma questao de logica mesmo controlada pela tua aplicação nao tem pra onde correr.
att.
Beleza cara…fiz a tabela no banco de forma com que eu possa saber do usuário o seu perfil, as telas onde ele tem permissões e quais são essas.
Minha dúvida é de onde e como faço essa validação.É no bean?É na propria view?É no xml do faces junto as regras de encaminhamento?
V
vinnysoft
Amigo,
Se vc estiver usando o JSF, é mais ou menos o seguinte: vc mapeia sua classe filtro (que faz a autenticação) no web.xml junto com a pasta de seu projeto onde vc quer controle de acesso. Ex:
Isso quer dizer que toda vez que um usuário tentar acessar páginas dentro do diretório Restrito, será executado a classe Filtro. E na classe filtro vc usaria mais ou menos assim:
publicclassFiltroimplementsFilter{publicvoiddoFilter(ServletRequestreq,ServletResponseresp,FilterChainchain)throwsIOException,ServletException{HttpServletRequestrequest=(HttpServletRequest)req;HttpSessionsession=request.getSession();// recupera o usuario logado da sessãoStringlogin=(String)Login.usuario;//Login seria uma classe que contem os dados do usuário, que seriam passados da view para o ManagedBean.RequestDispatcherdispatcher=null;// tem usuario? if(login==null)//Aqui poderia fazer uma comparacao de perfil, por exemplo.{//então envia para a pagina de acesso invalidodispatcher=req.getRequestDispatcher("/erroacesso.jsf");}else{// libera o acesso a paginadispatcher=req.getRequestDispatcher(request.getRequestURI());}dispatcher.forward(req,resp);}
Seria mais ou menos assim. Agora existem frameworks que te auxiliam a fazer isso, como o Spring (é até aconselhado se sua aplicação for de grande porte). Não cheguei a usar, mas ouvi falar muito bem deste framework.
Se vc estiver usando o JSF, é mais ou menos o seguinte: vc mapeia sua classe filtro (que faz a autenticação) no web.xml junto com a pasta de seu projeto onde vc quer controle de acesso. Ex:
Isso quer dizer que toda vez que um usuário tentar acessar páginas dentro do diretório Restrito, será executado a classe Filtro. E na classe filtro vc usaria mais ou menos assim:
publicclassFiltroimplementsFilter{publicvoiddoFilter(ServletRequestreq,ServletResponseresp,FilterChainchain)throwsIOException,ServletException{HttpServletRequestrequest=(HttpServletRequest)req;HttpSessionsession=request.getSession();// recupera o usuario logado da sessãoStringlogin=(String)Login.usuario;//Login seria uma classe que contem os dados do usuário, que seriam passados da view para o ManagedBean.RequestDispatcherdispatcher=null;// tem usuario? if(login==null)//Aqui poderia fazer uma comparacao de perfil, por exemplo.{//então envia para a pagina de acesso invalidodispatcher=req.getRequestDispatcher("/erroacesso.jsf");}else{// libera o acesso a paginadispatcher=req.getRequestDispatcher(request.getRequestURI());}dispatcher.forward(req,resp);}
Seria mais ou menos assim. Agora existem frameworks que te auxiliam a fazer isso, como o Spring (é até aconselhado se sua aplicação for de grande porte). Não cheguei a usar, mas ouvi falar muito bem deste framework.
Espero ter ajudado!
Até +!
Era exatamente disso que eu estava falando.
Valeu cara, vou colocar no meu código aqui e fazer as adaptações.
Valeu tbm cara…muito bom o tutorial mesmo, alias gostei desse blog.
Indica mais algum?
M
marinahuss
Comecei a estudar Java mês passado e ainda está muito complicado para mim entender o funcionamento deste controle de acesso, realmente é uma coisa que eu preciso aprender bastante ainda.