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

tomcat修改jsessionid在cookie中的名称

    博客分类:
  • java
阅读更多

 

一朋友说要修改tomcat的session cookie name,我翻了一下tomcat各个版本的源码(tomcat4已经没人用了,所以除外),帮朋友解决了问题,现总结了一下

修改后效果

1、tomcat5修改方法

在启动项中增加org.apache.catalina.SESSION_COOKIE_NAME参数

linux
JAVA_OPTS=’-Dorg.apache.catalina.SESSION_COOKIE_NAME=yousessionname

win
set JAVA_OPTS=”-Dorg.apache.catalina.SESSION_COOKIE_NAME=yousessionname

2、tomcat6和tomcat7修改方法相同

在Context容器标签上增加sessionCookieName参数

<Context path=”/” docBase=”webapp” reloadable=”false”sessionCookieName=”yoursessionname”></Context>

3、为啥这样就好用呢?

tomcat5时增加参数对所有Context生效,影响甚大,所以到以后的版本就仅针对Context设置了

tomcat5源码如下
public final class Globals
/**
* The name of the cookie used to pass the session identifier back
* and forth with the client.
*/
public static final String SESSION_COOKIE_NAME =
System.getProperty(“org.apache.catalina.SESSION_COOKIE_NAME”,
“JSESSIONID”);

tomcat6和tomcat7的源码差不多,如下
public class StandardContext
….省略若干
/**
* The name to use for session cookies. <code>null</code> indicates that
* the name is controlled by the application.
*/
private String sessionCookieName;
/**
* Gets the name to use for session cookies.
*
* @return  The value of the default session cookie name or null if not
*          specified
*/
public String getSessionCookieName() {
return sessionCookieName;
}

/**
* Sets the name to use for session cookies. Overrides any setting that
* may be specified by the application.
*
* @param sessionCookieName   The name to use
*/
public void setSessionCookieName(String sessionCookieName) {
String oldSessionCookieName = this.sessionCookieName;
this.sessionCookieName = sessionCookieName;
support.firePropertyChange(“sessionCookieName”,
oldSessionCookieName, sessionCookieName);
}

PS:需要修改其它参数可以直接翻看源代码或查看tomcat在线文档

出自my blog 宣传一下,嘿嘿

 

1
1
分享到:
评论

相关推荐

    android获取jsessionId和发送jsessionId

    当用户访问一个需要会话支持的Web应用时,服务器会在响应中通过Set-Cookie头部将`jsessionId`发送给客户端(通常是浏览器或Android应用),客户端则将其保存在Cookie中,并在后续的请求中自动附带这个标识,以便...

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

    例如,在 Tomcat 容器中,可以在 conf 文件夹下找到 context.xml 文件,并将 `&lt;Context&gt;` 修改为 `&lt;Context sessionCookiePath="/"&gt;`。然后,在 server.xml 文件中,在 `&lt;Connector&gt;` 中加入 `emptySessionPath=...

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

    IP相同的两个session对应的cookie是一样的,而不幸的是sessionID就保存在cookie中,这样先访问A,再访问B的时候,B的sessionid会覆盖A的sessionid。这个事情没办法解决,所以你不要搞两个端口,最好是搞两个IP。原来...

    cookie设置httpOnly和secure属性实现及问题

    - **作用**: 防止Cookie信息在传输过程中被窃听或篡改,提高了传输过程的安全性。 - **适用场景**: 对安全性要求较高的网站,如银行、支付平台等。 ##### 2. `httpOnly`属性 - **定义**: 如果Cookie设置了`httpOnly...

    Session Cookie的HttpOnly和secure属性

    如果在Cookie中设置了"HttpOnly"属性,那么通过程序(JS脚本、Applet等)将无法读取到Cookie信息,这样能有效的防止XSS攻击。 对于以上两个属性, 首先,secure属性是防止信息在传递的过程中被监听捕获后信息泄漏,...

    Tomcat7+Redis+Session 负载之后session 共享 tomcat jar包

    然而,当使用像Nginx这样的反向代理服务器进行负载均衡时,用户可能会被分配到不同的Tomcat实例上,由于Session信息存储在单个服务器的内存中,因此会导致用户在不同服务器间切换时Session丢失,从而引发登录状态...

    Tomcat中实现Session小结

    总结来说,Tomcat中的Session是通过Session ID(JSESSIONID)作为标识,结合Cookie在客户端和服务器之间传递,实现对用户会话状态的跟踪。了解这些原理对于优化Web应用性能、处理会话管理问题以及确保用户安全性至关...

    Nginx 集群 tomcat session 共享配置有源码

    - 在Tomcat的`web.xml`配置文件中添加一个`Manager`元素,配置为`org.apache.catalina.session.PersistentManager`,并指定session存储为Redis。你需要提供Redis服务器的IP地址、端口和key前缀等参数。 ```xml ...

    tomcat7整合redis实现session共享,jar包带配置方法

    在Tomcat的`conf/server.xml`文件中,修改`&lt;Engine&gt;`或`&lt;Host&gt;`标签下的`&lt;Manager&gt;`元素。配置为以下内容,以使用RedisSessionManager: ```xml host="localhost" port="6379" database="0" password="" ...

    reids+tomcat8.5+tengine实现session相关jar包.zip

    4. **Session共享原理**:通过在Tomcat中集成一个session管理器,如`Tomcat-Redis-Session-Manager`,将session数据持久化到Redis中。每次用户请求到达时,服务器首先检查本地是否有该session,如果没有则从Redis中...

    cookie_session知识点

    1. **依赖关系**:Session通常依赖于Cookie中的jsessionid来标识用户。当服务器找不到客户端的jsessionid或者对应的Session过期或已被销毁,服务器会创建新的Session对象。 2. **创建时机**: - 第一次请求时,...

    Redis-Tomcat共享session

    在session共享的场景下,Tomcat服务器会将用户的session数据存储到Redis中,而不是本地的JSESSIONID,这样无论用户请求哪个Tomcat实例,都可以从Redis中获取到相应的session信息。 在实际操作中,我们需要进行以下...

    tomcat7+session共享(mencache)

    在Web应用中,当用户登录后,服务器会在用户的浏览器上设置一个名为JSESSIONID的Cookie,用来跟踪用户的会话。这个ID被用来在服务器端查找对应的Session对象,存储用户的会话信息,如登录状态、购物车等。然而,当...

    Windows下Apache2.2+Tomcat6配置集群、负载均衡、session共享

    3. **使用cookie**:在cookie中存储session ID,每次请求时携带,Apache通过stickysession指令将请求定向到对应的Tomcat实例。 通过以上配置,我们可以构建一个高可用、负载均衡的Web服务系统。在实际操作中,还...

    nginx+tomcat集群的jar包 session共享

    对于 `nginx`,配置 `proxy_set_header` 指令将 `JSESSIONID`(或自定义的 `cookie` 名称)传递给后端: ```nginx location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-...

    tomcat集群使用redis共享session的jar包

    同时,还需要在每个Tomcat实例中添加支持session共享的jar包,这些jar包可能包括`jedis.jar`(用于Java操作Redis)和`tomcat-redis-session-manager.jar`(Tomcat的Redis session管理器)。 2. **配置Tomcat**:在`...

    Apache tomcat远程代码执行验证代码

    3. **JSESSIONID**:Cookie中的JSESSIONID通常用于跟踪用户会话。在上述请求中,它可能表示攻击者试图利用已存在的会话或者模拟合法会话来绕过身份验证。 4. **安全性配置**:Apache Tomcat的安全配置非常重要,应...

Global site tag (gtag.js) - Google Analytics