`
yq2011cm
  • 浏览: 9440 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

去除链接后面的jsessionid

    博客分类:
  • java
阅读更多
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponseWrapper;
import javax.servlet.http.HttpSession;
import java.io.IOException;

/**
*
* <p>Title: DisableUrlSessionFilter.java</p>
* <p>Description:去除URL里的jsessionid </p>
* <p>Company: </p>
* @author 
* @date
* @version 1.0
*/
public class DisableUrlSessionFilter implements Filter{
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
    if (!(request instanceof HttpServletRequest)) {
          chain.doFilter(request, response);
          return;
     }
     HttpServletRequest httpRequest = (HttpServletRequest) request;
     HttpServletResponse httpResponse = (HttpServletResponse) response;
     if (httpRequest.isRequestedSessionIdFromURL()) {
          HttpSession session = httpRequest.getSession();
          if (session != null) session.invalidate();
     }
        // wrap response to remove URL encoding
         HttpServletResponseWrapper wrappedResponse = new HttpServletResponseWrapper(httpResponse) {
             @Override
            public String encodeRedirectUrl(String url) {
                return url;
             }
            public String encodeRedirectURL(String url) {
                return url;
             }
            public String encodeUrl(String url) {
                return url;
             }
            public String encodeURL(String url) {
                return url;
             }
         };
        // process next request in chain
         chain.doFilter(request, wrappedResponse);
}
@Override
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
}
@Override
public void destroy() {
// TODO Auto-generated method stub
}
}
然后在web.xml里配置一下
<filter>
   <filter-name>jsessionid</filter-name>
   <filter-class>
    com.cps.interceptor.DisableUrlSessionFilter
   </filter-class>
</filter>
<filter-mapping>
   <filter-name>jsessionid</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>
分享到:
评论

相关推荐

    jsessionid存在的问题及其解决方案

    它通常被附加到URL后面,以便在页面重定向或刷新时保持会话状态。然而,这种方式存在一些问题: 1. **安全性**:`jsessionid`暴露在URL中可能带来安全风险,如会话劫持或跨站脚本攻击(XSS)。攻击者可以通过获取...

    android获取jsessionId和发送jsessionId

    在Android开发中,与服务器进行交互是常见的任务,而`jsessionId`是Web应用程序中用于跟踪用户会话的一种机制。本文将详细讲解如何在Android客户端获取`jsessionId`以及如何在后续请求中发送`jsessionId`,以保持...

    tomcat修改jsessionid在cookie中的名称

    ### Tomcat中修改JSessionID在Cookie中的名称 在Tomcat服务器中,默认情况下,用于传递会话标识(即JSessionID)的Cookie名称为“JSESSIONID”。有时,出于安全考虑或其他需求,我们可能需要自定义这个名称。本文将...

    获取JsessionId

    重定义URL 使其直接进去网页 不用登录 用于:邮件链接直接进入网站

    UrlFilter过滤jsessionId

    - **用户体验提升:**去除URL中的`jsessionId`可以使URL更加简洁美观,提升用户体验。 - **兼容性改进:**有些客户端或中间件可能不支持URL中的`jsessionId`,通过过滤可以提高系统的兼容性。 #### 五、总结 `...

    Set-Cookie: JSESSIONID=8AB51DC4244907FD9EBB063C7FD73CBA; Path=/; HttpOnly

    Cookie 路径属性安全设置 ...然而,在某些情况下,Cookie 中的路径属性可能会泄露项目路径,导致安全风险。本文将介绍如何解决 Cookie 路径属性暴露问题。 Cookie 路径属性的危险 在服务器中的项目中,如果 Cookie...

    java 转换 IE JESSIONID

    例如,将`JSESSIONID`添加到URL后面,如`http://example.com/?JSESSIONID=abc123`。 4. **源码解析**: - 博文链接中的“1973323”可能是博客文章的ID,访问这个链接可以查看具体的实现细节。源码中可能会包含如何...

    使用redis解决nginx+tomcat8负载均衡集群session共享问题jar包

    这里,`$cookie_JSESSIONID`表示根据用户cookie中的JSESSIONID来确定服务器,`consistent`则确保哈希算法的稳定性。 **session共享的优势** 1. **高可用性**: Redis提供了复制和哨兵监控等机制,增强了session数据...

    一个服务器搭多个tomcat导致session丢失,或者同一个IP不同端口,多个应用的session会冲突解决方法

    经过资料查找,发现问题是因为:IP相同认为是同一个域,接收了B的set-cookie指令,把对应的cookie内容覆盖了,其中包括jsessionid,造成A的session丢失。 如果IP不同,则不会发生这个问题。IP相同的两个session对应的...

    Spring Framework最新版本 spring-webmvc-5.2.9.RELEASE

    避免可能会绕过CVE-2015-5211对RFD攻击的保护,具体取决于通过使用jsessionid路径参数使用的浏览器。

    K8_Struts2.3.1.4 s2-013 0day利用工具+动画

    关于2010那洞 我就不说了 2011那个也不说了 (这两成功率 还是顶高的) ...在firefox下会看到 使用了s2 a标签的链接源码是这样的 *.jsp;jsessionid inurl: *.jsp;jsessionid 能不能搞到 纯属看你人品了

    java中Cookie被禁用后Session追踪问题

    一.服务器端获取Session对象依赖于...Java中给出了再所有的路径的后面拼接JSESSIONID信息。 在 Session1Servlet中,使用response.encodeURL(url) 对超链接路径拼接 session的唯一标识 // 当点击 的时候跳转到 sess

    Nginx Tomcat 集群的Session 复制

    Nginx Tomcat 集群的Session 复制,解决了,集群情况下的session复制问题。

    java实现多次HttpURLConnection共享session

    // 解析cookieHeader,例如:JSESSIONID=123456; Path=/; HttpOnly // 使用CookieManager的CookiePolicy接受所有Cookie cookieManager.getCookieStore().add(null, parseCookie(cookieHeader)); } ``` 4. 共享...

    http上传研究

    在IT行业中,HTTP上传是一项常见的任务,特别是在Web开发中,我们经常需要将用户的数据,如文件、图片或视频,从客户端(通常是浏览器)发送到服务器进行处理或存储。... ...这使得服务器能够解析和处理不同类型的输入...

    界面色彩&色系:色彩基础.作为网页制作工作者参改用不错

    色彩是设计中至关重要的一部分,尤其在网页制作领域。它不仅影响着网站的视觉吸引力,还对用户体验、品牌识别以及信息传达起着关键作用。本文将深入探讨色彩基础,帮助网页制作工作者更好地理解和应用色彩。...

    Python3爬虫带上cookie的实例代码

    Cookie的英文原意是“点心”,它是在客户端访问Web服务器时,服务器在客户端硬盘上存放的信息,好像是服务器发送给客户的“点心”。服务器可以根据Cookie来跟踪客户状态,这对于需要区别客户的场合(如电子商务)...

    session的生命周期1

    这意味着服务器会将`Session ID`附加到URL路径后面,使得即使没有`Cookie`,服务器也能通过解析URL来识别用户`Session`。`HttpServletResponse.encodeURL(String url)`方法用于实现这个过程。 - **URL重写与Cookie...

    关于集群 cook 覆盖问题 及解决方法

    此外,如果应用CA内有链接直接跳转到应用CB,同样可能导致Session丢失。这种现象的根本原因是Cookie的Name、Domain和Path属性相同,导致两个应用的Cookie互相覆盖。 **二、问题成因** WebLogic Server默认情况下,...

    一个基于vitamio的视频播放器

    【标题解析】 "一个基于vitamio的视频播放器" 这个标题指出,这是一个使用了Vitamio库的视频播放应用项目。Vitamio是一个专门为Android平台设计的多媒体开发框架,它提供了丰富的视频和音频播放功能,使得开发者能够...

Global site tag (gtag.js) - Google Analytics