I have 3 EAR packages which combined together makes one huge web java application. Is it possible to configure the beans into the packages to share the session id data between them. My idea is to develop a login form which registers users into database tables using session id. Every time then users browse the application their session id is used to identify the users. The tricky part comes when users switch between different EAR packages and beans. The session id will change and other beans won't know what is the new session id. Is there a way to configure the beans into the EAR packages to share the data which contains the session id.
I created two identical EAR packages and I placed context.xml file in each one. This is the file structure:
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
I placed the context.xml file into WEB-INF directory and I added this line:
<?xml version="1.0" encoding="UTF-8"?>
<SessionCookie path="/" />
I added a java code which takes from the beans the cookie number and writes them into database. Then I run bought EAR packages to see are they going to share one session id. It turns out that that the cookie id from one client with one browser is different. The configuration is not working. I use JBoss 7.1.0
Maybe I have mistaken the directory where I have to place the context.xml file?
I think the proper way is to go for Single Sign On options. There are few open source projects available like JOSSO, OpenSSO etc.