session de partage dans les applications web
Je développe Une Application Web à l'aide de JSP
& Servlets
(Conteneur: Tomcat7
, de la Base de données: Oracle10
)
J'ai développé quelques applications web comme Profile
, Reports
, Leads
. Ensuite, j'ai développé Une Login
application. Dans cette application, je suis le stockage USERID dans Session
avec un peu plus de attributs de session.
Après la connexion de l'utilisateur, il sera montré menu qui contient des liens vers d'autres Applications comme des liens vers des Profile
Application.
Alors quand j'ai accès Session
après que l'utilisateur se connecter:
- Si j'essaie d'accéder à la session au sein de la même application(Connexion), puis-je obtenir session avec tous les attributs requis
- Mais lorsque j'essaie d'accéder à la session à partir d'autres applications comme
Profiles
puis-je obtenir de la session denull
extrait de code pour vérifier session (Filtre de Servlet de Connexion de l'application web)
HttpSession session = request.getSession(false);
if(session==null)
{
System.out.println("Session does not exist... Redirected to LOGIN Page.");
response.sendRedirect("/ApplicationName/Login.jsp");
}
Je suis accédant à la session en Profile
application pour vérifier si l'utilisateur est connecté ou non.
Alors j'ai cherché, et j'ai trouvé que Session
ne peut pas être accessible à partir d'autres applications pour des raisons de sécurité.(J'ai aussi trouvé qu'il peut être fait par la mise en crossContext="true"
)
Puis j'ai trouvé d'autre option comme faire EAR
de toutes les applications, puis le déployer, mais malheureusement EAR
il n'est pas pris en charge par Tomcat7
.
Je suis nouveau sur le web, donc si quelqu'un a travaillé sur l'avant, alors s'il vous plaît laissez-moi savoir ce que peuvent être les options?
Merci d'avance
Update1
Maintenant, j'ai décidé d'utiliser EAR
, dans lequel je vais emballer tous les WAR
fichiers et puis je vais essayer de session de partage d'entre eux. depuis Tomcat ne prend pas en charge EAR
j'ai installé Oracle Glassfish
, Puis j'ai créé Enterprise Application Project
qui contient deux Applications 1. Login
et 2. Profiles
, puis créé EAR
fichier, et déployé sur Glassfish
.
Je tiens donc à partager session entre ces deux applications(sur Glassfish), donc, si quelqu'un a une idée à ce sujet alors s'il vous plaît laissez-moi savoir. (lien vers un tutoriel sera également appréciée)
oui, j'ai envie de partager des données entre plusieurs applications s'exécutant sur le même serveur web(tomcat7)
stackoverflow.com/questions/9293350/... mots-clés: domaine niveau des cookies de session
single sign on peut vous aider
Je pense que vous avez besoin de ré-examiner votre architecture. De connexion ne doit pas être une application. Il doit être un module ou d'un service que votre application utilise.
OriginalL'auteur Bhushan | 2013-04-17
Vous devez vous connecter pour publier un commentaire.
La façon dont j'ai vu cette façon de faire dans ma boutique est à farcir les informations de connexion dans un cookie crypté et installer des agents (java, les filtres, les serveurs web mods etc, devant les applications qui ont besoin de données de l'utilisateur) qui permettra de déchiffrer les cookies et de transmettre les données pour les applications en aval. Ne pas stocker les informations de connexion dans la session HTTP, si vous voulez partager à travers des applications.
pouvez-vous expliquer pourquoi vous pensez que sa hacky? Si les applications web sont en cours d'exécution sur les différents domaines et les identités des utilisateurs sont totalement non liés, puis je envisager de mettre dans une pleine solution d'authentification unique. Mais si vos applications sont toutes sur le même domaine, je ne vois pas de problèmes avec cette approche.
Je n'enregistre pas d'informations d'identification d'utilisateur dans un cookie de session, soit crypté ou non. C'est un problème de sécurité potentiel; mais si vous chiffrez avec un assymétrique codage qui peut faire l'affaire. De toute façon, à mon humble avis, cela impliquerait trop de composants.
Utiliser les Kerboros pour gérer cela pour vous. Pourquoi ré-inventer la roue.
Tout ce que vous propager à travers le navigateur va être vulnérables SSL (ou pas). Il existe de nombreuses façons de faire de la sécurité. Comme par exemple le stockage d'un opaque référence à l'id utilisateur et le mapper retour à la vraie id en aval ..etc. À partir d'une perspective de la complexité, l'établissement d'un bon cryptage cadre n'est pas plus complexe que la configuration d'une authentification unique cadre. En fait, un bon cryptage cadre est essentiel pour l'authentification unique (SAML, OAuth, etc.)
OriginalL'auteur Mahesh Guruswamy
Comme indiqué ci-dessus, l'exigence de vous parler de l'authentification Unique (SSO). Le plus simple authentification unique que vous pouvez mettre en œuvre est la suivante:
Utiliser AES-256 pour le chiffrement.
OriginalL'auteur Michael