estou tentando configurar JAAS ao digitar http://localhost:8080/escola antes de ir ao arquivo index.html
queria que solicitasse na tela login usuário e senha (validar no banco de dados se existe) e ir pata tela menu central
mais não estou conseguindo configurar certo…
alguém pode me ajudar …
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
java.lang.NullPointerException
com.filters.LoginFilter.doFilter(LoginFilter.java:18)
note The full stack trace of the root cause is available in the JBoss Web/3.0.0-CR1 logs.
JBoss Web/3.0.0-CR1
public class LoginFilter implements Filter {
@Override
public void destroy() {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException,
ServletException {
String userName = SecurityAssociation.getPrincipal().getName();
System.out.println("Yeeey! Get me here and find me in the database: " + userName);
filterChain.doFilter(servletRequest, servletResponse);
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
}
<!-- Filter to get the user name and work with it -->
<filter>
<filter-name>LoginFilter</filter-name>
<filter-class>com.filters.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<error-page>
<error-code>404</error-code>
<location>/error.jsp</location>
</error-page>
<error-page>
<error-code>403</error-code>
<location>/error.jsp</location>
</error-page>
<!-- Validation By Form -->
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/pages/public/login.xhtml</form-login-page>
<form-error-page>/pages/public/loginError.xhtml</form-error-page>
</form-login-config>
</login-config>
<!-- Allowed Roles -->
<security-role>
<role-name>ADMIN</role-name>
</security-role>
<security-role>
<role-name>USER</role-name>
</security-role>
</web-app>
A configuração no web.xml não está completa, falta a tag security-constraint. Nela é que serão definidos quais os recursos (paginas) que exigem segurança.
Não só de um diretório, as regras são definidas por padrão de URL. Esses padrões podem ser por diretório (/pasta/) , por extensão (.jsf) , etc.
Inclusive é possível colocar vários url-patterns dentro do mesmo resource-collection.
[quote=paribe]
ao digitar localhost:8080/LoginJSF
porque não cai na tela login…pois o arquivo inputname.jsf está embaixo da pasta pages
não deveria chamar a tela de login !!!
pois pelo exemplo pra cai na tela de login teria digitar todo caminho
[/paribe]
Essa parte da pergunta eu não entendi…
Está indo para a página de login e não deveria, ou não está indo e deveria ir…?