Pessoal, estou desenvolvendo um sistema para WEB.
Estou utilizando:
JSP+JavaServer Faces+Hibernate+Postgres
O acesso ao sistema é controlado por usuário e senha. Mas estou com uma dúvida.
Se quando acesso o sistema, em vez de entrar com usuário e senha eu digitar no endereço do navegador o caminho da página.jsf ela abre.
Gostaria de controlar esse tipo de acesso.
Trabalho com ASP e esse tipo de controle eu vazia com o HTTP_REQUEST.
Só aceitava conexões vindas do endereço do site.
Como eu faço esse controle em JSP+Java?
Agradeço a antenção…
E no aguardo.
[quote]Se quando acesso o sistema, em vez de entrar com usuário e senha eu digitar no endereço do navegador o caminho da página.jsf ela abre. [/quote]Acredito que vc. esteje usando o Tomcat 6.0.14, e isso quem controla é o seu container WEB, onde vc. ira criar regras de controle de acesso em suas aplicações WEB.
Procure estudar o conceito de “roles”, que nada mais é que o controle de usuários veja esse post.:
http://www.guj.com.br/posts/list/67382.java#354411
Há também validações chamadas realm, onde o seu Web Container será capaz de validar as senhas em um SGBDs,XML,txt,LDAP, etc, e relacionar aos seus “roles”.
http://www.mhavila.com.br/topicos/java/tomcat.html
http://tomcat.apache.org/tomcat-5.5-doc/realm-howto.html
http://cymulacrum.net/writings/tomcat4/c470.html
Bem é isso ai.
sds
Cara, outra solução que você pode usar seria declarar um filtro que sempre procurasse
na session se o usuário estaria logado. Caso o usuário não esteja logado você redireciona
o cara pra página login… ]
public class controlaAcesso implementes Filter {
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) {
HttpSession session =( (HttpServletRequest) request).getSession(false);
if (session.getAttribute("usuarioLogado") == null && session.getAttribute("usuarioLogado").equals("") ) {
((HttpServletRequest) response).sendRedirect("login.jsp");
chain.doFilter(request, response);
}
}
}
Daí não esquece de no Web.xml você mapear os servlet´s ou mapeamentos ao qual o filtro vai monitorar
<filter>
<filter-name>ControlaAcesso</filter-name>
<filter-class>controlaAcesso</filter-class>
</filter>
<filter-mapping>
<filter-name>ControlaAcesso</filter-name>
<servlet-class>Servlet</servlet-class> ou <url-pattern>/endereco</url-pattern>
</filter-mapping>
Bom, eu fiz o código de cabeça mas tenho quase certeza que ele está certo…
Detalhes: o método getSession(false) é assim porque se não existir uma session um nova não deve
ser criada.
O bom de fazer deste jeito é que você deixa a seu cargo o controle de quem pode ou não acessar qual
página!
Valeu!!!