Permissão ao navegar por páginas JSF

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!!!