`
lection.yu
  • 浏览: 77485 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Tomcat6解决Session跨域访问问题

 
阅读更多
Tomcat容器内使用Session,默认请跨下,jsessionid的Cookie作用范围是当前域名,path为/。
如果www.domain.com下使用request.getSession(),那么session就只在www.domian.com下有效,而二级域名则无法携带这个jsessionid。如果要解决这个问题,需要将Cookie的domain有效作用于.domain.com。(前面这个“.”不能少)
Tomcat6以后(有人说6.0.27以后,这个我不确定),可以在Context配置文件中配置属性
sessionCookieDomain=".mydomain.com" sessionCookiePath="/"
这样就解决session的domain问题了,而不需要修改tomcat源代码,或者增加valve等相对复杂的手法。
配置Context除了在server.xml或者conf/Catalina/localhost中,如今6版本也可以在具体的app的目录中创建context.xml文件来配置,路径如下
%myApp%/META-INF/context.xml

示例代码
<?xml version="1.0" encoding="UTF-8"?>
<Context antiResourceLocking="false" privileged="true" useHttpOnly="true" sessionCookieDomain=".mydomain.com" sessionCookiePath="/"/>

如果如果本机用localhost访问,而设置了这个。。session就别想有效果了。。需要注意。
分享到:
评论

相关推荐

    tomcat6跨域访问配置及jar包

    配置tomcat6的跨域访问问题,包含两个xml配置文件clientaccesspolicy.xml,crossdomain.xml,以及两个jar包cors-filter-1.7.1.jar,java-property-utils-1.9.1.jar

    tomcat8 Redis Session共享

    - **跨域共享**:在分布式环境中,所有服务器都可以访问同一份Session数据。 但也要注意以下事项: - **性能开销**:相比内存中的Session,使用Redis会增加网络I/O和CPU开销。 - **数据一致性**:虽然Redis支持事务...

    redis实现session共享所有需要的jar tomcat6/tomcat7

    为了解决这个问题,我们可以利用Redis的分布式特性,将Session存储在Redis中,使得所有服务器都能访问同一份Session数据。 接下来,我们将讨论实现步骤: 1. **安装Redis**:首先,你需要在服务器上安装并运行...

    完美解决ajax访问遇到Session失效的问题

    现在Ajax在Web项目中应用广泛,几乎可以说无处不在,这就带来另外一个问题:当Ajax请求遇到Session超时,应该怎么办? 显而易见,传统的页面跳转在此已经不适用,因为Ajax请求是XMLHTTPRequest对象发起的而不

    tomcat8+redis+session共享jar包

    标题中的“tomcat8+redis+session共享jar包”指的是在Tomcat 8这个流行的Java应用服务器上,通过集成Redis缓存系统实现session共享的一种解决方案。Session共享在分布式环境中尤为重要,因为用户在不同服务器间的...

    配置tomcat-redis-session共享架包

    如果遇到session丢失问题,检查网络连接、Redis配置和Tomcat日志是常见的排查手段。 7. **最佳实践** - 尽量减少session中的数据量,只存储必要信息,避免占用过多的Redis内存。 - 考虑使用Spring Session等更...

    Tomcat 同一服务器上 不同web项目共享session的

    但是,这种方法需要所有项目信任彼此,并且不能解决跨域问题。 2. **使用ServletContextListener**:创建一个监听器,当Web应用启动时,将其他项目的session数据注册到当前项目。这样,每个项目都可以访问其他项目...

    nginx反向代理导致session失效的问题解决

    经了解,他对同一个项目使用tomcat部署了两个环境,一个在开发服务器上,一个在他本机,两个环境代码配置完全相同。两边通过同一个nginx进行反向代理,nginx配置大致如下, location /health/ { proxy_pass ...

    集中式session管理方案

    集中式Session管理方案是解决多应用、多服务器之间Session共享问题的一种有效方法,尤其在分布式系统和集群环境中显得尤为重要。这种方案旨在确保用户在不同应用系统之间切换时,其Session信息能够保持一致,提供...

    redis实现session一致性的Lib

    为了解决这个问题,我们可以利用Redis的分布式特性来集中存储和管理session。 这个名为"redis实现session一致性"的库提供了将Tomcat服务器中的session数据同步到Redis的方法。它包含了三个jar文件,这些文件很可能...

    基于Tomcat6的CAS SSO配置

    基于Tomcat6的CAS SSO配置涉及的主要知识点包括SSO(Single Sign-On,单点登录)、CAS(Central Authentication Service,中心认证服务)、SSL(Secure Socket Layer,安全套接层)以及Tomcat服务器的配置。...

    nginx_tomcat_redis搭建负载均衡共享session

    为了解决这个问题,我们需要引入会话共享机制。 Redis,一个开源的、高性能的键值存储系统,可以作为会话存储的解决方案。通过将用户的会话数据(例如JSESSIONID)存入Redis,所有Tomcat实例都可以访问这些数据,...

    Nginx session丢失问题处理解决方法

    下面是处理和解决Nginx session丢失问题的一些知识点和方法: 1. 了解Session机制:在Web应用中,Session用于在服务器端保存用户的会话状态。用户登录后,服务器会生成一个唯一的Session ID,通常存储在用户的...

    跨域实现用户鉴权

    综上所述,跨域实现用户鉴权涉及到Web开发的多个方面,包括CORS、cookie、session、JWT等技术,以及对后端服务如Tomcat的配置。开发者需要理解这些概念并灵活运用,以确保在保障安全性的同时提供良好的用户体验。...

    跨域实现用户鉴权1

    可以通过CORS(Cross-Origin Resource Sharing)来实现跨域访问控制,允许服务器指定哪些来源可以访问其资源。在Tomcat服务器上,可以通过配置CORS Filter或修改web.xml来开启CORS支持。 其次,"tomcat"是Apache ...

    harpoxy的介绍和配置

    介绍haproxy的理论和初级的配置,了解基本的配置和基础的应用实例,从而走进haproxy的大门。

    开发阶段:需要session共享做开发测试

    4. **JWT(JSON Web Tokens)**:为了解决跨域问题,开发者可能会选择使用JWT,它是一种轻量级的身份认证机制,可以在多个服务之间安全地传递用户信息。 5. **Spring Session**:在Java开发环境中,Spring框架提供...

    Session机制总结

    为了解决这个问题,引入了Session机制,使得服务器能够识别并存储用户的特定信息,即使用户在多个页面之间跳转,也能保持对用户状态的跟踪。 **1. Session工作原理** 当用户登录网站后,服务器会在内存中创建一个...

    javaWeb购物车模拟小程序

    在实际项目中,cookie和session的选择会根据业务需求和性能优化考虑,例如,对于需要跨域共享的场景,可能需要采用cookie(设置domain属性)或第三方会话管理解决方案。 **7. 扩展知识** 除了cookie和session,现代...

    跨域SSO实例安装和配置指南

    在每台机器上安装Tomcat 6。安装过程中请注意配置正确的JDK路径。 ##### 步骤四:配置Tomcat server.xml 在IDP服务器上的Tomcat配置文件`server.xml`中,需要添加以下配置来启用HTTPS端口,并指定密钥库文件和密码...

Global site tag (gtag.js) - Google Analytics