2010-01-26 10 views
0

J'ai donc un serveur Tomcat dans une application Web Java, l'authentification est effectuée avec les noms d'utilisateur et les mots de passe Tomcat spécifiés dans le fichier tomcat-users.xml authentification (envoi à j_security_check). J'ai maintenant enregistré un objet distant (en utilisant Java RMI) auquel je veux accéder en dehors du contexte web, à partir d'un plugin eclipse.Java - Authentifier l'utilisateur en utilisant l'infrastructure de sécurité de l'application Web sans les requêtes HTTP

Mon intention est d'obtenir l'objet distant qui a une méthode

public AnotherRemoteClsWithRestrictedMethods login(user, pass); 

et la mise en œuvre utilise le cadre de la sécurité de l'application Web pour vérifier la combinaison d'utilisateur et mot de passe. Si valide, retournerait un autre objet avec des méthodes restreintes.

Comment procéder pour obtenir/interroger les détails de sécurité de l'application Web?

Note: Je n'ai pas d'objet HttpRequest, dois-je appeler une autre URL pour verfiy l'utilisateur? D'autres façons?

Merci d'avance.

Répondre

0

j_security_check est une authentification basée sur HTTP. Vous aurez vraiment besoin de déclencher une requête HTTP. Vous pouvez utiliser java.net.URLConnection pour cela, ou le Apache Commons HttpClient plus commode.

+0

Ouais je me suis dit que c'est un moyen mais idéalement je ne veux pas avoir à lancer une requête HTTP, n'y a-t-il pas de méthode statique comme SecurityContext.verifyUser (user, pass)? –

+0

Non dans l'API Servlet, non. Vous devrez analyser vous-même 'tomcat-users.xml' et saisir/tester les informations d'identification. Mieux vaut les stocker dans une base de données et laisser Tomcat utiliser un 'DatasourceRealm' (ou' JDBCRealm') à la place. De cette façon, vous pouvez accéder plus facilement aux informations d'identification provenant d'autres sources. – BalusC