2009-10-14 5 views
0

J'ai une question en trois parties liées à JBoss 5 Authentification (dans les conteneurs Web/EJB):authentification JBoss Question (s)

  1. est-il un moyen de propager une identité autre que le nom d'utilisateur qui a été spécifié lors de la connexion? Pour exemple, en utilisant la DatabaseServerLoginModule, je veux authentifier l'utilisateur avec un nom d'utilisateur/mot de passe, mais retourner l'identifiant de l'utilisateur , et non nom d'utilisateur, lorsque ejbContext.getCallerPrincipal() ou httpRequest.getUserPrincipal() est appelé .

  2. Mieux encore, je veux faire un module de connexion personnalisée qui retourne un objet utilisateur (probablement une entité qui a été chargée de la base de données). Cependant, même si j'enveloppe bien cet objet utilisateur dans une sous-classe principale dans mon module de connexion , la couche EJB jamais obtient cet objet. Au lieu de cela, la couche EJB obtient toujours un SimplePrincipal lorsque getCallerPrincipal est appelée.

  3. Je veux être en mesure de déclencher une connexion programme, comme décrit dans WebAuthentication. Cependant, j'ai besoin de pour le faire sans connaître le mot de passe . Imaginez un service à la clientèle interface où un agent du service à la clientèle peut se connecter à l'application en tant qu'utilisateur final. Ils cliquent sur un bouton « login-en » et nous devrions être en mesure de les connecter par programme dans en tant qu'utilisateur, sans jamais connaître le mot de passe de l'utilisateur (le client agent de service est déjà lui-même authentifiées). Vous pouvez également ce même scénario avec « Mot de passe » qui utilise un mécanisme de connexion alternatif pour authentifier l'utilisateur, puis les enregistre dans programatically.

Merci!

Répondre

0

répondre à ma propre question il y a deux ans: depuis le temps que j'ai écrit cette question, nous avons basculé sur Spring Sécurité et trouvé qu'il est beaucoup plus flexible que ce qui est disponible dans JBoss seul. Ma recommandation à quiconque cherche une vraie solution à ce problème est d'abandonner l'authentification fournie par le conteneur et de jeter un coup d'œil à Spring Security.

0

1) Vous n'êtes pas familier avec le DatabaseServerLoginModule mais l'ID de l'utilisateur ne devrait pas être son nom d'utilisateur? Les noms d'utilisateur devraient être uniques au moins?

(bien après avoir lu le reste de votre question peut-être ce n'est pas utile ...)