let say in tomcat application server we deployed 2 web applications , web application A, web application B. How to pro-grammatically sync session from web application A to web application B . In other words, as long as user login to web application A, he is already login to web application B. As well when he log out.
You may check Sharing session data between contexts HOW-TO to see if it solves your problem.
Is this about authenticating user only once with same username and password for multiple sites?
If so google Single Sign On. There are a number of frameworks out there for doing just that.
Use the single sign on valve.
Related
In a classic Web Application deployed in Glassfish we are looking for a way to prevent 'same' user from having multiple simultaneous logins.
Is there a way to acchieve that?
I have 2 application one in ASP.net and 2nd in Java. I need to create login for the applications.
If user is logged into one application he need to be automatically logged into 2nd application too. How can I do this?
Thanks in advance..
You need to find an SSO solution that can be integrated with your ASP.net application, presenting you with plugins and extensions that can interact with that SSO server. There are many options available for you to evaluate, such as Shibboleth, ADFS, CAS, etc. The specifics of the SSO server deployment as well as the integration with each application depends on your choice of deployment and likely is beyond the scope of this question.
I have set up my two applications in single tomcat instance using the procedure described in Can I SSO between multiple Wars in the same servlet with Stormpath and Apache Shiro?
Both of the WARs run fine individually with the users registered in Stormpath directory. But when I link the two applications and do successful login in War A, still redirected to the Login Page of WAR B and I need to login again. I also see the jSessionId is different on login page of WAR A and WAR B. So somehow both the applications are not getting linked.
Shiro has a session mechanism which allows you clustering. See http://shiro.apache.org/session-management.html#SessionManagement-SessionClustering
Shiro has also an extension: buji-pac4j (https://github.com/bujiio/buji-pac4j) which new version (1.4.0) has a support for Stormpath.
So using both will help you achieve SSO with Stormpath.
I have two webapps loaded from one embedded jetty server. Both apps are using Spring MVC.
Sessions are managed by manipulating HttpSession objects in the controller methods.
(request.getSession() and session.invalidate(), etc)
But suppose a user signs in on web app A, and session is created on web app A. When the same user hits web app B, can the app read and recognize the same session that's being used in A? Or do two web apps have completely separate session managements? I see the browser stores a JSESSION cookie, so I wonder if two apps would use the same JSESSION cookies?
I did search around and had no luck, probably related to embedded jetty having mutliple apps is a bit uncommon.
Thank you so much!
There is answer in scope of tomcat, but looks like the same is possible for jetty
We want to realize a SSO-infrastructure with some IBM Domino / Websphere products and one custom web application. All IBM products are configured for SSO. Therefore, the WebSphere Application Server 8 generates an LTPAToken2 after successful login in one of the IBM products. We want to achieve the same behaviour for our own custom web application. After login into this web app, a LTPAToken2 should be generated.
Therefore my question: Is it possible to generate a valid LTPAToken2 in our custom web application? Or maybe, is it possible to use the WebSphere Application Server APIs for this generation? Which steps would be nessecary to achieve this? At the moment, our custom web application is not hosted in a WAS, but on a Tomcat.
Thanks and best regards
Ben
As long as you have your application hosted on a tomcat server that is not possible. There is no open API from IBM for creating LTPA tokens.
If you would have had the same user directory and using standard Java Security Mechanisms you could move your application to WAS, where SSO is configured. Not only would it be possible, your LTPA tokens would be created on login to your web application without any further configuration.
As it seems have a solution with two different user directories, sharing the same user id but not the password, you need to take other measures to achieve SSO.
One is to have an Access manager software which handles login for all your applications,
A second solution is to write some custom code. Login into the tomcat server could generate a custom cookie. You need to write code to generate this cookie. Then you can write a TAI to intercept it on the WebSphere server thus accepting the login. The TAI would be configured in the container rather than in a separate application itself. (example)
I also assume you could solve this by writing servlet filters to handle the login, rather than a TAI.
If your Tomcat app is on the same domain as (one of) the WebSphere servers, and the Tomcat server has network access to the WebSphere instance, you could have a servlet in your Tomcat app accept credentials on its request and pass them in an outbound http request to something like /<secured app>/j_security_check on the WAS instance, record the LtpaToken2 if successful and then add a cookie with its value in the servlet response on Tomcat.
As long as the two servers are on the same domain the browser will send the cookie back if the Tomcat app links/redirects the user to a secured URI on the WAS app, and you have SSO.