关于tomcat和sessionCookieName和SESSION_PARAMETER_NAME以及disableURLRewriting参数原理和使用...

关于tomcatsessionCookieNameSESSION_PARAMETER_NAME以及disableURLRewriting参数

关于sessioncookie参考:

http://www.blogjava.net/freeman1984/archive/2011/09/02/357833.html

http://www.blogjava.net/freeman1984/archive/2010/09/09/331501.html

http://www.blogjava.net/freeman1984/archive/2010/03/30/316901.html

 

tomcat服务端和客户端通过sessionCookieName参数(默认值:jsessionid)的值来识别session,并在此session中共享数据。在浏览器首次请求服务的时候,tomcat服务器会在响应头信息信息里面返回:

 

 

 

告诉浏览器保存cookie名为JSESSIONID的cookie,当然此时为会话cookie,此cookie是保存在浏览器当前会话中的。过期时间为当前会话结束时。(当然前提是浏览器要设置为接受第三方cookie)

在下次浏览器请求的时候会将此cookie值返回给服务器,当然cookie的名称同(sessionCookieName参数,确切的来说是同浏览器保存的会话cookie的名称),当服务器接受到此参数的时候,就不会在响应头信息信息里面返回Set-cookie




当然sessionCookieName参数的值是可以修改的,查看官方文档:

sessionCookieName

The name to be used for all session cookies created for this Context. If not set, the default of JSESSIONID will be used. Note that this default will be overridden by the org.apache.catalina.SESSION_COOKIE_NAME system property.

通过在contex中设置:
1 <Context sessionCookieName="jss" >

或者通过java虚拟机参数

2 -D org.apache.catalina.SESSION_COOKIE_NAME=jss

或者动过设置:

3

System.setProperty("org.apache.catalina.SESSION_COOKIE_NAME""jss");

 

当然后两种的优先级高。

修改之后在查看服务器返回:

 

当浏览器设置了不接受第三方cookie的时候。Tomcat支持通过URLRewrit(将sessionid放在url中)来将sessionid传给服务器来维持会话(当然如果浏览器接受会话cookie优先级是从会话cookie中去,也就是url里面的session参数会被抛弃)。

例如:get.do;jsessionid=1682268A851B4B6A3BAE18871C63AF30

 

查看tomcat相关源码:

 

private static final String match = ";" + Globals.SESSION_PARAMETER_NAME + "=";

 

此时的SESSION_PARAMETER_NAMEsessionCookieName是可以不相同的(默认相同),通过修改org.apache.catalina.SESSION_PARAMETER_NAME参数来修改,方式如下:

-Dorg.apache.catalina.SESSION_PARAMETER_NAME=jsss

 或者:

System.setProperty("org.apache.catalina.SESSION_PARAMETER_NAME""jsss");

 

这样通过URLRewrit的方式session就不限于么个浏览器或者浏览器页了。只要有此seesionid任何浏览器任地方都能够进行访问,当然就带来了安全问题。可通过以下参数来禁止URLRewritsessionid,仍然是在tomcatcontext.xml文件内设置:

<Context disableURLRewriting="true">

官方文档:

isableURLRewriting

Set to true to disable support for using URL rewriting to track session IDs for clients of this Context. URL rewriting is an optional component of the servlet 2.5 specification but disabling URL rewriting will result in non-compliant behaviour since the specification requires that there must be a way to retain sessions if the client doesn't allow session cookies. If not specified, the specification compliant default value of false will be used.

 

 

设置完成后即使你在url里面加了sessionid的值,服务器仍然会在返回头信息里面返回Set-cookie信息。

其他应用服务器原理大致相同。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/286909.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

我让代码生了个孩子继承了他爸爸谁知他爸爸继承了他爷爷(16)

本系列文章将会以通俗易懂的对话方式进行教学&#xff0c;对话中将涵盖了新手在学习中的一般问题。此系列将会持续更新&#xff0c;包括别的语言以及实战都将使用对话的方式进行教学&#xff0c;基础编程语言教学适用于零基础小白&#xff0c;之后实战课程也将会逐步更新。 若…

linux之lrzsz

1、lrzsz介绍 我们利用lrzsz进行windows和linux间的文件上传下载 2、安装 在ubuntu系统下 sudo apt-get install lrzsz 在centos系统下 yum install lrzsz 3、使用 1)、windows上传文件到linux环境,使用如下命令 rz

POJ 1611 The Suspects (并查集)

The Suspects题目链接&#xff1a; http://acm.hust.edu.cn/vjudge/contest/123393#problem/B Description 严重急性呼吸系统综合症( SARS), 一种原因不明的非典型性肺炎,从2003年3月中旬开始被认为是全球威胁。为了减少传播给别人的机会, 最好的策略是隔离可能的患者。 在Not-…

Android帧缓冲区(Frame Buffer)硬件抽象层(HAL)模块Gralloc的实现原理分析(2)...

函数load也是实现在文件hardware/libhardware/hardware.c文件中&#xff0c;如下所示&#xff1a; static int load(const char *id, const char *path, const struct hw_module_t **pHmi) { int status; void *handle; struct hw_module_t …

Win8消费者预览版下载地址 包含中文下载地址及中文手册

Win8消费者预览版下载地址&#xff08;32位英文版&#xff09;&#xff1a; http://ak.or.esd.microsoft.com/pr/WCPDL/8A9D4FDFF736C5B1DBF956B89D6C8FDFD925DACD2/Windows8-ConsumerPreview-32bit-English-x1794225.esd Win8消费者预览版下载地址&#xff08;64位英文版&…

VS2019社区版(Community)试用30天过期的有效解决办法

VS2019社区版是免费的&#xff0c;前提是你得登陆自己的账户&#xff0c;如果一开始安装时没有登陆&#xff0c;那么就会只有30天有效期。此时&#xff0c;需要我们登陆微软账号&#xff0c;重新验证即可。 登陆微软账号&#xff0c;即可继续免费试用。

【万字长文】使用 LSM Tree 思想实现一个 KV 数据库

目录设计思路内存表WALSSTable 的结构SSTable 元素和索引的结构SSTable Tree内存中的 SSTable数据查找过程何为 LSM-Treee参考资料整体结构实现过程文件压缩测试插入测试加载测试查找测试SSTable 结构SSTable 文件结构SSTable Tree 结构和管理 SSTable 文件读取 SSTable 文件SS…

linux之安装mysql提示Error: Unable to find a match: mysql-community-server

1 问题 在centos系统下安装mysql,命令如下 yum -y install mysql-community-server 提示错误如下 [root@iZm5e6dk6exl71zbx327zvZ mysql]# yum -y install mysql-community-server MySQL Connectors Community …

记录部件中GetFieldControlByFieldName(字段值样式设置)用法

度量快速开发平台中&#xff0c;记录部件上&#xff0c;不单是字段名称可以设置样式&#xff0c;要填入内容的方框也可以设置样式。通过获取记录部件上某一个字段的输入控件&#xff0c;在二次开发中不常用。该方法只有一个参数&#xff0c;即要获取对象的字段&#xff0c;需要…

C/C++/Linux工程师学习资料干货路线这都有,从入门到实战!【CSDN宝藏资料图鉴第二期】

若是大一学子或者是真心想学习刚入门的小伙伴可以私聊我&#xff0c;若你是真心学习可以送你书籍&#xff0c;指导你学习&#xff0c;给予你目标方向的学习路线&#xff0c;无套路&#xff0c;博客为证。 前言 CSDN 是全球知名的开发者社区&#xff0c;创建于1999年&#xff…

你要的来了:ArcGIS空间插值分析方法权威解读

插值问题的提出??? 一、趋势面 Trend is a global polynomial interpolation that fits a smooth surface defined by a mathematical function (a

Socket解决粘包问题2

在AsynServer中对接收函数增加接收判断&#xff0c;如果收到客户端发送的请求信息&#xff0c;则发送10个测试包给发送端&#xff0c;否则继续接收&#xff0c;修改后的接收代码如下&#xff1a; private void AsynReceive(){byte[] data new byte[1024];//接收缓存string rec…

C# WebBrowser 取 window.open 新窗口 url的方法

System.Windows.Forms.WebBrowser wb; //WebBrowser 对象wb.NewWindow new CancelEventHandler(wb_NewWindow);wb.DocumentCompleted delegate{ #region 处理window.open新开窗口的问题System.Windows.Forms.HtmlElement html wb.Document.CreateElemen…

linux之rpm

1、rpm Linux rpm 命令用于管理套件 -a  查询所有套件。-b<完成阶段><套件档>+或-t <完成阶段><套件档>+  设置包装套件的完成阶段,并指定套件档的文件名称。-c  只列出组态配置文件,本参数需配合"-l"参数使用。-d  只列出文本文件,…

保姆级的HTML零基础教程少见吧?这是第一节(1)

作者简介 作者名&#xff1a;1_bit 简介&#xff1a;CSDN博客专家&#xff0c;2020年博客之星TOP5&#xff0c;蓝桥签约作者。15-16年曾在网上直播&#xff0c;带领一批程序小白走上程序员之路。欢迎各位小白加我咨询我相关信息&#xff0c;迷茫的你会找到答案。 目录 HTML基…

WPF 通用权限开发框架 (ABP)

前言对于大部分.NET 开发者来说, 都比较熟悉目前流行的ABP框架, 基于开源的ABP框架, 可以自己进行二次开发, 无需重新开发一些基础功能,例如: 用户角色管理、权限、组织、多租户等等。但是对于ABP框架来说, 提供给.NET开发者的可选项非常少, 目前也仅仅是提供了基于Web的解决方…

甘肃省事业单位公考招聘考试权威复习资料---GIS专业综合复习题(一)

1. 数字城市 以计算机技术、多媒体技术和大规模存储技术为基础,以宽带网络为纽带,运用遥感、全球定位系统、地理信息系统、遥测、仿真-虚拟等技术,对城市进行多分辨率、多尺度、多时空和多种类的三维描述,即利用信息技术手段把城市的过去、现状和未来的全部内容在网络上进…

MongoDB 3.0 新增特性一览

引言 在历经版本号修改&#xff08;2.8版本直接跳到3.0版本&#xff09;和11个rc版本之后&#xff0c;MongoDB3.0于2015年3月3日正式发布。可以毫不夸张的说&#xff0c;该版本的新增特性标志着MongoDB这款典型的NoSQL数据库已经进入了一个全新的发展阶段。本文以下内容会逐个盘…

[华清远见]FPGA公益培训

本套视频教程为华清远见 网络公益培训活动&#xff0c;主讲人&#xff1a;姚远老师&#xff0c;华清远见高级讲师。 ---------------------------------------------------------------------------------------- “红色飓风FPGA普及行动” 课程内容&#xff1a; 第一讲、FPGA设…

单一职责原则--设计模式系列

定义 一个类只负责一项职责 职责扩散 什么叫职责扩散&#xff0c;就是职责再进行细化&#xff0c;就拿公司来说&#xff0c;好比客户的需求&#xff0c;需求是不断变化的&#xff0c;而且存在极大的不确定性&#xff0c;说不定哪天上司找到你要重新细化某个需求 所以最好在职责…