2013-06-10 7 views
1

J'aime utiliser un proxy avec authentification via un nom d'utilisateur et mot de passe. Tous les messages qui transitent par l'ESB doivent être enregistrés dans une base de données, y compris l'utilisateur authentifié auprès de l'ESB. Existe-t-il un moyen d'obtenir le nom d'utilisateur dans le proxy? Je sais que vous pouvez obtenir le message-id par exemple, mais je n'ai pas trouvé de solution pour obtenir le nom d'utilisateur.WSO2 ESB Get Username

Peut-être que vous pouvez me aider :)

Répondre

0

Une fois que le service proxy est sécurisé nom d'utilisateur auth jeton ou de base ... Une fois l'authentification réussie du message, le nom d'utilisateur peut être récupéré. Le nom d'utilisateur peut être récupéré à partir du contexte de message axis2 en utilisant la propriété appelée "nom d'utilisateur". Vous pouvez utiliser le médiateur de propriété (scope is axis2) ou un médiateur de classe simple.

+0

Cela va dans la bonne direction, mais j'ai toujours des problèmes pour obtenir cette propriété. Je ne sais pas comment l'expression devrait ressembler: Pouvez-vous m'aider avec ce? – muetze

+0

Oui .. cela doit être correct .... – Asela

0

Vous pouvez obtenir des procurations à l'aide de jeton de nom d'utilisateur (ex: nom d'utilisateur/mot de passe). Accédez à l'option de sécurité du tableau de bord de service -> et vous trouverez les outils permettant d'activer le jeton de nom d'utilisateur. Si vous avez sécurisé comme ça, dans votre requête, vous devriez envoyer l'en-tête auth basic.

+0

Désolé, la réponse ne correspond pas à la question. – muetze

1

Cela fonctionne si vous utilisez $ header pour accéder aux informations d'en-tête. Juste obtenir le xPath et extraire le nom d'utilisateur comme cet exemple:

<property xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" name="user" expression="$header/wsse:Security/wsse:UsernameToken/wsse:Username"/>