设置TOMCAT SESSIONID 字符长度和生成算法
修改TOMCAT 默认的生成SESSION ID的算法和字符长度非常简单,只需修改context.xml中的<Manager>标签值,比如:
<Manager
sessionIdLength="20"
pathname="SESSIONS.ser"
maxActiveSessions="8000"
secureRandomAlgorithm="SHA1PRNG"
secureRandomClass="java.security.SecureRandom"
maxInactiveInterval="60"
/>
标红的部分不用我说大家也应该知道了,算法除了SHA1PRNG还有好几种,具体可以查看 JDK DOC的java.security.SecureRandom类章节.
更多配置见:http://tomcat.apache.org/tomcat-7.0-doc/config/manager.html
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的算法,或者自己实现相关部分等 等。
设置TOMCAT SESSIONID 字符长度和生成算法的更多相关文章
- 设置Tomcat的字符编码
在 server.xml 中的 Connector 标签在加入 URIEncoding="UTF-8" 属性. <Connector port="8080" ...
- Tomcat session生成算法
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt396 修改TOMCAT 默认的生成SESSION ID的算法和字符长度非常简 ...
- pycharm设置代码行的长度为79字符(PEP8)
pycharm设置代码行的长度为79字符
- 美团技术分享:深度解密美团的分布式ID生成算法
本文来自美团技术团队“照东”的分享,原题<Leaf——美团点评分布式ID生成系统>,收录时有勘误.修订并重新排版,感谢原作者的分享. 1.引言 鉴于IM系统中聊天消息ID生成算法和生成策略 ...
- Pytorch系列教程-使用字符级RNN生成姓名
前言 本系列教程为pytorch官网文档翻译.本文对应官网地址:https://pytorch.org/tutorials/intermediate/char_rnn_generation_tutor ...
- RocketMQ msgId生成算法
当我们用RocketMQ发送信息的时候通常都会返回如下信息: SendResult [sendStatus=SEND_OK, msgId=0A42333A0DC818B4AAC246C290FD000 ...
- 字符串匹配的kmp算法 及 python实现
一:背景 给定一个主串(以 S 代替)和模式串(以 P 代替),要求找出 P 在 S 中出现的位置,此即串的模式匹配问题. Knuth-Morris-Pratt 算法(简称 KMP)是解决这一问题的常 ...
- 微博短链接的生成算法(Java版本)
最近看到微博的短链接真是很火啊,新浪.腾讯.搜狐等微博网站都加入了短链接的功能.之所以要是使用短链接,主要是因为微博只允许发140 字,如果链接地址太长的话,那么发送的字数将大大减少.短链接的主要职责 ...
- 将最大主机/ DNS名称字符长度从63增加到255
https://mp.weixin.qq.com/s/WcjaAgAOvEhjtP2nXx5Fhw Zabbix 4.0.0alpha8发行说明 运维帮 昨天 Zabbix团队很高兴地宣布Zabbix ...
随机推荐
- css实现导航切换
css实现导航切换 效果图: 代码如下,复制即可使用: <!DOCTYPE html> <html> <head> <title>css实现导航切换&l ...
- Asp.Net Core WebAPI入门整理(二)简单示例
一.Core WebAPI中的序列化 使用的是Newtonsoft.Json,自定义全局配置处理: // This method gets called by the runtime. Use thi ...
- docker:一个支持django的dockerfile
其中,包括了主要的生产环境模块, 从alpine作起,镜像不大.保存用. FROM alpine:3.7 COPY . /target-dir WORKDIR /target-dir RUN sed ...
- Mysql介绍,与将脚本导入新数据库
一:介绍 1.介绍 Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系 ...
- Windows下 ffmpeg + labelImg 提取视频帧 得到图片集 并 标注图片 来 构造数据集
构造数据集的流程 视频文件 >> ffmpeg处理 >> 图片集 >> labelImg进行标注 >> 标注好的数据集 准备ffmpeg ...
- shiro xml标准配置
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- 关于ImportError: libssl.so.10: cannot open shared object file: No such file or directory unable to load app 0 (mountpoint='') (callable not found or import error)
一.问题描述 在亚马逊云服务器使用Nginx+uwsgi部署django项目时,项目可以使用python manage.py runserver正常运行,uwsgi测试也没问题,Nginx也正常启动, ...
- 10BASE
10BASE-T,10BASE-5,10BASE-2,以太网的技术标准,10Base-2.10Base-5.10Base-T都是以太网的技术标准,传输速率为10Mbps. 10Base-2技术以细 ...
- BZOJ.1017.[JSOI2008]魔兽地图(树形DP 背包DP)
题目链接 树形DP,考虑子节点对父节点的贡献. 设f[x][i][j]表示当前为x,用i个x去合成上一层装备,花费为j的最大价值. 由子节点转移时 是一个分组背包,需要一个辅助数组g[i][j]表示前 ...
- [Java]类的生命周期(上)类的加载和连接[转]
本文来自:曹胜欢博客专栏.转载请注明出处:http://blog.csdn.net/csh624366188 类加载器,顾名思义,类加载器(class loader)用来加载 Java 类到 Java ...