博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从URL中移除JSESSIONID
阅读量:5759 次
发布时间:2019-06-18

本文共 3707 字,大约阅读时间需要 12 分钟。

hot3.png

1. 对于Tomcat 7将其添加到web.xml中

 
 
COOKIE

2. 下面的过滤器可以解决您的问题(从

package com.companyname.projectname.web.filter;import java.io.IOException;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.HttpServletResponseWrapper;import javax.servlet.http.HttpSession;/** * Servlet filter which disables URL-encoded session identifiers. *  * 
 * Copyright (c) 2006, Craig Condit. All rights reserved. *  * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: *  * * Redistributions of source code must retain the above copyright notice, *  this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright notice, *  this list of conditions and the following disclaimer in the documentation *  and/or other materials provided with the distribution. *   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * 
 */public class DisableUrlSessionFilter implements Filter {/* private static Log logger = LogFactory.getLog(DisableUrlSessionFilter.class);*/ /**  * Filters requests to disable URL-based session identifiers.  */ public void doFilter(ServletRequest request, ServletResponse response,   FilterChain chain) throws IOException, ServletException {  // skip non-http requests  if (!(request instanceof HttpServletRequest)) {   chain.doFilter(request, response);   return;  }  HttpServletRequest httpRequest = (HttpServletRequest) request;  HttpServletResponse httpResponse = (HttpServletResponse) response;  // clear session if session id in URL  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;   }   @Override   public String encodeRedirectURL(String url) {    return url;   }   @Override   public String encodeUrl(String url) {    return url;   }   @Override   public String encodeURL(String url) {    return url;   }  };  // process next request in chain  chain.doFilter(request, wrappedResponse); } /**  * Unused.  */ public void init(FilterConfig config) throws ServletException { } /**  * Unused.  */ public void destroy() { }}

3. 您可以添加设置成你的http标记,如下所示:

4. Tomcat 6的,在你的context.xml中添加disableURLRewriting=“真” Tomcat的7和ServletFilter中已经 或以编程方式: servletContext.setSessionTrackingModes(EnumSet.of(SessionTrackingMode.COOKIE)); 
5. 如果你是Servlet 3.0中,你也可以实现PrettyFaces重写规则:

转载于:https://my.oschina.net/u/1442577/blog/549395

你可能感兴趣的文章
简单之极,搭建属于自己的Data Mining环境(Spark版本)
查看>>
Ruby 2.5.0概览
查看>>
如何通过解决精益问题提高敏捷团队生产力
查看>>
Comment2Wechat —— Typecho 插件
查看>>
Apache下.htaccess文件配置及功能介绍
查看>>
Magento XML cheatsheet
查看>>
Egg 2.19.0 发布,阿里开源的企业级 Node.js 框架
查看>>
Kubernetes 弹性伸缩全场景解析 (四)- 让核心组件充满弹性 ...
查看>>
使用MySQLTuner-perl对MySQL进行优化
查看>>
Swoole 4.1.0 正式版发布,支持原生 Redis/PDO/MySQLi 协程化 ...
查看>>
开发网络视频直播系统需要注意的地方
查看>>
haproxy mysql实例配置
查看>>
强化学习的未来— 第一部分
查看>>
掌握Python系统管理-调试和分析脚本1-debugging
查看>>
TableStore:用户画像数据的存储和查询利器
查看>>
2019 DockerCon 大会即将召开,快来制定您的专属议程吧!
查看>>
15分钟构建超低成本数据大屏:DataV + DLA
查看>>
1月9日云栖精选夜读 | Mars 算法实践——人脸识别
查看>>
SparkSQL Catalyst解析
查看>>
jSearch(聚搜) 1.0.0 终于来了
查看>>