`

[Session]session变化,前后不一致

    博客分类:
  • Java
阅读更多

在项目上遇到了session变化问题,同一个browser同一个user,login的session id和查询的不同,前后变化了.

这样导致里面的attribute信息消失了.

后来发现,这是由于我们项目部署的路径是由同一个gateway,指向两台不同的VM.因此我们的url使用同一个IP.

根据查询的资料显示,同一个IP会被认为是同一个域,因此前者的session会被后一个request的session覆盖.

要不就配置两个不同的IP,要不就在apache那里设置:(/etc/httpd/conf.d/test-ssl.conf)

<Location /project>

  ProxyPass "http://VM01 ip:8080/project/" disablereuse=On

  ProxyPassReverse "http://VM01 ip:8080/project/"

  ProxyPassReverseCookiePath /project/project

</Location>

 

<Location /project_02>

  ProxyPass "http://VM02 ip:8080/project/" disablereuse=On

  ProxyPassReverse "http://VM02 ip:8080/project/"

  ProxyPassReverseCookiePath /project/project_02

</Location>

 这样,VM01使用URL:https://public ip/project;

VM02 URL:https://public ip/project_02;

不同的URL指向不同的VM,然后VM本地tomcat conf里面还是使用一样project name path配置即可

分享到:
评论

相关推荐

    Vue使用axios引起的后台session不同操作

    本文详细介绍了在Vue项目中使用axios库与后台进行交互时,遇到session信息不一致的问题及其解决方法。在传统的前后端分离开发中,前端通常通过Ajax或axios来与后端API进行数据交互。然而,由于浏览器同源策略的限制...

    Hiebrnate增删改查

    - **更新(Update)**:当对象的状态发生变化时,调用`Session.update()`或`Session.saveOrUpdate()`即可将这些更改同步到数据库。 - **删除(Delete)**:使用`Session.delete()`方法可以将对象从数据库中移除。...

    Hibernate的高级操作.pdf

    持久层操作涵盖了Hibernate提供的各种数据访问API,包括但不限于CRUD(Create, Read, Update, Delete)操作、HQL(Hibernate Query Language)查询、Criteria API查询等。 #### Hibernate回调与拦截机制 除了持久...

    hibernate3 api

    -持久态(Persistent):对象已与Session关联,并且其变化会被持久化。 -脱管态(Detached):对象曾是持久态,但Session关闭后变为脱管态。可以手动重新关联Session使其恢复为持久态。 -临时态(Transient):对象...

    Hibernate 3.3.2 API

    持久态的对象已与Session关联,其状态变化会同步到数据库;脱管态是持久态对象与Session断开连接后的状态。 9. **集合映射**:允许将一个实体类的属性映射为其他实体类的集合,如List、Set等,通过@OneToMany、@...

    资源前后端分离式分布式微服务架构项目用户授权讲义+源码+视频

    - 在分布式微服务架构中,每个服务都需要独立管理其自身的用户授权逻辑,同时还需要考虑跨服务的授权一致性问题。 - 理解这一流程有助于开发者设计出更安全、更高效的授权系统。 2. **方法授权**: - 方法授权是...

    Hibernate API

    - **查询缓存**: 缓存查询结果,适用于查询结果不经常变化的情况。 7. **状态转换** - **Transient**: 对象未被持久化,不与任何Session关联。 - **Persistent**: 对象已持久化,与Session关联。 - **Detached*...

    Hibernate 高级特性

    2. 动态模型:使用DynamicEntity类,可以根据需要动态创建和操作实体,适用于数据结构不固定或变化频繁的场景。 六、 事件监听与拦截器 1. 事件监听:通过实现Hibernate的事件监听接口,可以在特定操作(如持久化、...

    hibernate事件 刷新事件.zip

    - **最佳实践**:指导如何有效地使用刷新事件,避免不必要的数据库查询,或者处理因并发导致的数据不一致问题。 - **案例分析**:可能有一些具体的场景,比如并发更新、事务隔离级别等,展示了刷新事件的应用。 ...

    hibernate框架学习笔记整理

    - **一致性**:事务执行前后,数据保持一致性。 - **隔离性**:事务之间相互独立,不会互相干扰。 - **持久性**:一旦事务提交,其效果是永久性的。 - **事务并发问题**: - 脏读:一个事务读取了另一个事务未...

    ssh架构——课程的添加删除查看修改

    在这些操作前后,别忘了开启和提交事务,以确保数据操作的完整性和一致性。 在实际开发中,我们还需要创建相应的视图(JSP页面)来展示和接收用户输入。Struts2提供了丰富的标签库,如s:form、s:textfield等,帮助...

    WEB安全测试大纲

    9. Session安全设置:预防会话劫持和会话固定,检查登录前后Session ID的变化,确保登录后一段时间内无操作会自动登出。 10. URL安全:确保只有授权用户可以通过URL访问特定页面,防止参数篡改。例如,对数字参数的...

    Mybatis-ehcache 1.2.1源码(ehcache-cache-mybatis-ehcache-1.2.1.tar

    5. **缓存刷新**:当数据库中的数据发生变化时,Mybatis-ehcache 会通过监听机制或者定时任务来刷新对应的缓存,确保缓存与数据库数据的一致性。 6. **异常处理**:源码中包含了异常处理逻辑,当缓存操作出现问题时...

    javaweb购物车jsp+sqlserver

    为了提供更好的用户体验,购物车的更新通常采用Ajax技术,使得用户在不刷新整个页面的情况下,就能实时查看购物车的状态变化,例如添加或移除商品。 6. **MVC模式** 虽然没有明确指出,但这个项目很可能采用了...

    NHibernate.zip

    对象的状态在内存中变化时,NHibernate会自动处理与数据库的交互,确保数据的一致性。 3. **会话管理**:NHibernate 提供了Session接口,作为对象与数据库之间的桥梁。Session负责管理对象的生命周期,包括加载、...

    超级有影响力霸气的Java面试题大全文档

    Stateless Session Bean 虽然也是逻辑组件,但是他却不负责记录使用者状态,也就是说当使用者呼叫 Stateless Session Bean 的时候,EJB Container 并不会找寻特定的 Stateless Session Bean 的实体来执行这个 method...

    数据库_事务隔离级别与锁.docx

    2. **一致性(Consistency)**:事务执行前后,数据必须保持一致状态。如果事务未能达到预期的一致性,系统将事务回滚到初始状态,确保数据库状态的有效性。 3. **隔离性(Isolation)**:事务之间是相互独立的,...

    hibernate的包

    10. **实体生命周期**:Hibernate定义了对象的生命周期,包括瞬态(Transient)、持久化(Persistent)、托管(Managed)、脱管(Detached)和已删除(Deleted)等状态,帮助开发者理解对象在整个应用中的状态变化。...

    javaWeb FinalTest

    8. **监听器(Listener)**:监听器是用于监听特定事件的组件,例如监听Session的创建、销毁,或者监听ServletContext的变化等。 9. **JNDI(Java Naming and Directory Interface)**:JNDI提供了一种查找和管理...

    hibernate帮助文档

    事务管理通常在Session上进行,确保数据的一致性。 五、对象持久化 Hibernate提供了四种状态来管理对象:瞬时态、持久态、托管态和脱管态。持久化对象可以通过`save()`或`persist()`方法插入数据库,`update()`用于...

Global site tag (gtag.js) - Google Analytics