الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

logout filter by jsf

بدأه radiosameh في 21 نوفمبر 2012 · 1 رد · 822 مشاهدة · في JavaEE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

انا عامل برنامج معين عايز لما اليورد يخرج عن طريق 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>

الغلط فين

#2

ما المشكله في ذلك ... فهو بالفعل خرج من ال session حتى لو قام أحد و ضغط على زر Back

أخى..

أولا لا تستخدم اللغه العاميه

ثانيا ضع الكود داخل الوسم Code

مواضيع مشابهة