انا عامل برنامج معين عايز لما اليورد يخرج عن طريق logout لو حد قعد مكانة وضغط الزر back من البراوزر مايرجعش تاني للبرنامج يفضل واقف علي صفحة login وانا باستخدم ال jsf
ودة كلاس الفلتر اللي باستخدمة
package com.radiosameh.chat;
import java.io.IOException;
import javax.faces.context.FacesContext;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.tomcat.jni.User;
import com.radiosameh.entity.UsersEntity;
public class RestrictPageFilter implements Filter{
FilterConfig fc;
@Override
public void destroy() {
// TODO Auto-generated method stub
}
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
HttpSession session = request.getSession(true);
// UsersEntity newuser=(UsersEntity) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("loggedInUserEntity");
String loginURL = request.getRequestURL().toString();
if (session.getAttribute("loggedInUserEntity")==null && !loginURL.endsWith("Login.xhtml")) {
response.sendRedirect("Login.xhtml");
} else {
chain.doFilter(request, response);
}
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
fc=filterConfig;
}
}
وايضا ملف الويب
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"'>http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<display-name>lastChat</display-name>
<filter>
<filter-name>restrict</filter-name>
<filter-class>com.radiosameh.chat.RestrictPageFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>restrict</filter-name>
<url-pattern>*.xhtm</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.jboss.weld.environment.servlet.Listener</listener-class>
</listener>
<listener>
<listener-class>com.sun.faces.config.ConfigureListener</listener-class>
</listener>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>faces/Login.xhtml</welcome-file>
</welcome-file-list>
</web-app>
الغلط فين