修改TOMCAT 默认的生成SESSION ID的算法和字符长度非常简单,只需修改context.xml中的标签值,比如:

sessionIdLength="20"

pathname="SESSIONS.ser"

maxActiveSessions="8000"

secureRandomAlgorithm="SHA1PRNG"

secureRandomClass="java.security.SecureRandom"

maxInactiveInterval="60"

/>

标红的部分不用我说大家也应该知道了,算法除了SHA1PRNG还有好几种,具体可以查看 JDK DOC的java.security.SecureRandom类章节.

TOMCAT默认的SESSIONID生成器在高并发下可能产生些性能损失,因为采用了较为安全的随机数来生成SESSION的ID值。

实际上TOMCAT生成的SESSIONID是不可能有重复值的,查看TOMCAT源码文件:ManagerBase.java中的以下代码

/**

* Generate and return a new session identifier.

*/

protected String generateSessionId() {

String result = null;

do {

if (result != null) {

duplicates++;

}

result = sessionIdGenerator.generateSessionId();

} while(sessions.containsKey(result)); //此处保证最终生成给客户端使用的SESSIONID一定是不重复的

return result;

}

所以,不必担心SESSIONID的安全性,如果有更好的实现,可以修改相应代码用于特定项目中。

因此我们可以修改TOMCAT源码中的SessionIdGenerator.java生成ID的函数部分,比如采用 java.util.UUID+java.util.Random+(随机字符串)来构建更高效的生成SESSIONID的算法,或者自己实现相关部分等 等。

java sessionid长度_设置TOMCAT SESSIONID 字符长度和生成算法相关推荐

  1. c 获取char*的长度_最大的 String 字符长度是多少?

    点击上方"武培轩",选择"设为星标" 技术文章第一时间送达! String 类可以说是在 Java 中使用最频繁的类了,就算是刚刚接触 Java 的初学者也不会 ...

  2. 设置TOMCAT SESSIONID 字符长度和生成算法

    修改TOMCAT 默认的生成SESSION ID的算法和字符长度非常简单,只需修改context.xml中的<Manager>标签值,比如: <Manager sessionIdLe ...

  3. mysql 编码格式_设置MySQL的字符编码

    前言 这里我已经将MySQL的数据库编码设置为UTF-8,所以下面现实的都是UTF-8. 设置MySQL数据库的编码方式有三种,分别是基于session会话的.基于全局gloable的.永久性改变的. ...

  4. python字符串最大长度_字符串String的最大长度

    开篇三个问题 作为Java的程序员,不知道在Java代码中定义了多少个字符串,可是看看下面3个问题.你是否认真思考过?是否动手实践过? 1.Java中的字符串String的最大长度是多少? 2.Ecl ...

  5. 设计登录页面测试用例,页面包括账号、密码和验证码,账号字符长度小于20,密码字符长度小于30,验证码数字和字母组合,长度为4

    1. 正确输入账号.密码和验证码,登录成功. 2. 账号为空,应提示"请输入账号". 3. 账号长度为19个字符,符合要求. 4. 账号长度为20个字符,符合要求. 5. 账号长度 ...

  6. 运筹优化学习21:Java调用Cplex实现求解Cuting Stock Porblem的列生成算法详解

    目录 1 CSP问题与模型 1.1 问题描述 1.2 模型构建 2 列生成方法理论 2.1 引子 2.2 单纯形法到列生成 2.3 subproblem 2.3.1 对偶理论 2.3.2 影子价格 2 ...

  7. tomcat修改http长度限制_设置tomcat nginx上传文件大小限制

    一.关于在tomcat在server.xml的配置文件上传大小20M的限制 – maxPostSize="20971520″ 二.在nginx的nginx.conf的配置文件上传大小为20M ...

  8. mysql signed 长度_浅谈mysql字段长度设置

    mysql 中最常用的数据类型是tinyint,smallint,int,bigint,char,varchar; char(n)和varchar(n)存储固定长度的字符数据,长度最大为254字节.使 ...

  9. Java中计算处理中文两个字符长度问题解决(中文2个字符,英文1个字符)

    在java中定义一个 String str="我爱中国"  : str.length()   的长度是4 个字符,但是有时有我们处理文件格式的时候  ,定义固定的长度,中文只计算一 ...

最新文章

  1. 使用CEfSharp之旅(7)CEFSharp 拦截 http 请求 websocket 内容
  2. 如何设计一个本地缓存
  3. 比杠精网友更可怕的,是懂王同事
  4. 【noi 2.5_8465】马走日(dfs)
  5. Bash 文件夹操作
  6. 【技术分享】CSS 实现渐变色背景
  7. C# 页面调用控制台应用程序
  8. 复制文件的异常处理【应用】
  9. Ubuntu16.04 安装Maven 3.5.3
  10. Django实战(21):使用内置的Amin管理用户
  11. 高速EDA设计课程报告(二)
  12. PS抠图小技巧-【色彩范围】
  13. 公司不是家——联想员工亲历2004年联想大裁员【转载】
  14. 使用Python将word转换为pdf
  15. 计算机应用期刊查重率要求,计算机学报先审稿还是先查重
  16. 大富翁论坛和delphi盒子已正常开放
  17. 【教育教学资源】教育资讯、教学功能、当老师、或者补习班给学生的资料
  18. gta5 android ps4,gta5导演模式怎么玩好玩_gta5怎么进入导演模式怎么玩ps4导演模式怎么打开_攻略...
  19. Java实现Redis的列表(List)命令
  20. Java:输入年月日,输出这一天是这一年的第几天。

热门文章

  1. 概率论 方差公式_概率论与数理统计课程教学、学习基本要求和教学建议
  2. python基础语法实验要求_Python基础语法-关于条件
  3. bzoj1304 [CQOI2009]叶子的染色 dfs+树形dp
  4. Intel® Nehalem/Westmere架构/微架构/流水线 (9) - 系统软件增强/能耗增强
  5. Martin Odersky Scala编程公开课 第三周作业
  6. Unity网络--HLAPI(2):Unity HLAPI NetworkManager与NetworkBehaviour的回调函数
  7. java 90 训练营 二期下载_90天java进阶营二期 主流java技术与热门开源项目视频教程...
  8. 图解Visual Studio 2010中的UML建模功能
  9. [转]在Windows server 2012上部署DPM 2012 SP1 RTM之安装配置
  10. 弹飞大爷 BZOJ4764 LCT维护内向基环树森林