gpt4 book ai didi

java - EAR 包和 Bean 如何共享 session ID?

转载 作者:行者123 更新时间:2023-12-02 00:32:40 25 4
gpt4 key购买 nike

我有 3 个 EAR 包,它们组合在一起构成了一个巨大的 Web java 应用程序。是否可以将 bean 配置到包中以在它们之间共享 session id 数据。我的想法是开发一个登录表单,使用 session ID 将用户注册到数据库表中。每次用户浏览应用程序时,他们的 session ID 都会用于识别用户。当用户在不同的 EAR 包和 bean 之间切换时,棘手的部分就出现了。 session ID 将会改变,其他 Bean 将不知道新的 session ID 是什么。有没有办法将 bean 配置到 EAR 包中以共享包含 session id 的数据。

<小时/>

我创建了两个相同的 EAR 包,并将 context.xml 文件放入每个包中。这是文件结构:

SR_57
├── pom.xml
├── SR_57-ear
│   ├── pom.xml
│   ├── src
│   │   └── main
│   │   └── application
│   │   └── META-INF
│   │   └── MANIFEST.MF
│   └── target
│   ├── application.xml
│   ├── maven-archiver
│   │   └── pom.properties
│   ├── SR_57-ear-1.0-SNAPSHOT
│   │   ├── META-INF
│   │   │   ├── application.xml
│   │   │   └── MANIFEST.MF
│   │   ├── SR_57-ejb-1.0-SNAPSHOT.jar
│   │   └── SR_57-web-1.0-SNAPSHOT.war
│   └── SR_57-ear-1.0-SNAPSHOT.ear
├── SR_57-ejb
│   ├── pom.xml
│   ├── src
│   │   ├── main
│   │   │   ├── java
│   │   │   │   └── com
│   │   │   │   └── SR_57
│   │   │   └── resources
│   │   │   └── META-INF
│   │   │   └── MANIFEST.MF
│   │   └── test
│   │   └── java
│   │   └── com
│   │   └── SR_57
│   └── target
│   ├── classes
│   │   └── META-INF
│   │   └── MANIFEST.MF
│   ├── endorsed
│   │   └── javaee-endorsed-api-6.0.jar
│   ├── maven-archiver
│   │   └── pom.properties
│   ├── SR_57-ejb-1.0-SNAPSHOT.jar
│   └── surefire
└── SR_57-web
├── faces-config.NavData
├── nb-configuration.xml
├── pom.xml
├── src
│   ├── main
│   │   ├── java
│   │   │   └── com
│   │   │   └── SR_57
│   │   │   └── userCheck.java
│   │   ├── resources
│   │   └── webapp
│   │   ├── home.xhtml
│   │   ├── index.html
│   │   ├── resources
│   │   │   ├── css
│   │   │   │   ├── sr_style.css
│   │   │   │   └── style.css
│   │   │   ├── images
│   │   │   │   ├── 1.jpg
│   │   │   │   ├── 2.jpg
│   │   │   │   ├── 3.jpg
│   │   │   │   ├── 4.jpg
│   │   │   │   ├── 5.jpg
│   │   │   │   ├── 6.jpg
│   │   │   │   ├── 7.jpg
│   │   │   │   ├── bg_1.jpg
│   │   │   │   ├── bg.jpg
│   │   │   │   ├── overlay_1.png
│   │   │   │   ├── overlay.png
│   │   │   │   ├── title_1.png
│   │   │   │   └── title.png
│   │   │   └── js
│   │   │   ├── ChunkFive_400.font.js
│   │   │   ├── cufon-yui.js
│   │   │   ├── jquery.easing.1.3.js
│   │   │   └── jquery.min.js
│   │   ├── userNav.xhtml
│   │   └── WEB-INF
│   │   ├── context.xml
│   │   ├── faces-config.xml
│   │   ├── java.sql.Driver
│   │   └── web.xml
│   └── test
│   └── java
│   └── com
│   └── SR_57
└── target
├── classes
│   └── com
│   └── SR_57
│   └── userCheck.class
├── endorsed
│   └── javaee-endorsed-api-6.0.jar
├── generated-sources
│   └── annotations
├── maven-archiver
│   └── pom.properties
├── SR_57-web-1.0-SNAPSHOT
│   ├── home.xhtml
│   ├── index.html
│   ├── META-INF
│   ├── resources
│   │   ├── css
│   │   │   ├── sr_style.css
│   │   │   └── style.css
│   │   ├── images
│   │   │   ├── 1.jpg
│   │   │   ├── 2.jpg
│   │   │   ├── 3.jpg
│   │   │   ├── 4.jpg
│   │   │   ├── 5.jpg
│   │   │   ├── 6.jpg
│   │   │   ├── 7.jpg
│   │   │   ├── bg_1.jpg
│   │   │   ├── bg.jpg
│   │   │   ├── overlay_1.png
│   │   │   ├── overlay.png
│   │   │   ├── title_1.png
│   │   │   └── title.png
│   │   └── js
│   │   ├── ChunkFive_400.font.js
│   │   ├── cufon-yui.js
│   │   ├── jquery.easing.1.3.js
│   │   └── jquery.min.js
│   ├── userNav.xhtml
│   └── WEB-INF
│   ├── classes
│   │   └── com
│   │   └── SR_57
│   │   └── userCheck.class
│   ├── context.xml
│   ├── faces-config.xml
│   └── web.xml
├── SR_57-web-1.0-SNAPSHOT.war
└── surefire

64 directories, 75 files

我将 context.xml 文件放入 WEB-INF 目录中,并添加了这一行:

<?xml version="1.0" encoding="UTF-8"?>
<SessionCookie path="/" />

我添加了一个java代码,它从bean中获取cookie编号并将它们写入数据库。然后我运行购买的 EAR 包,看看它们是否会共享一个 session ID。结果发现,同一个浏览器的一个客户端的 cookie id 是不同的。配置不起作用。我使用JBoss 7.1.0

也许我弄错了放置 context.xml 文件的目录?

最佳答案

我认为正确的方法是选择单点登录选项。可用的开源项目很少,例如 JOSSO、OpenSSO 等。

关于java - EAR 包和 Bean 如何共享 session ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8630398/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com