`
shilimin
  • 浏览: 13760 次
  • 性别: 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丢失,从而引发登录状态...

    使用redis解决nginx+tomcat8负载均衡集群session共享问题jar包

    这里,`$cookie_JSESSIONID`表示根据用户cookie中的JSESSIONID来确定服务器,`consistent`则确保哈希算法的稳定性。 **session共享的优势** 1. **高可用性**: Redis提供了复制和哨兵监控等机制,增强了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**:在`...

Global site tag (gtag.js) - Google Analytics