2011-07-26 18 views
2

私はMetroとTomcatのスタック上でJavaでwebserviceを開発しています。私の問題はユーザ認証にあります。私はTomcatがJDBCRealmやJNDIRealmのようないくつかの外部認証領域を利用できることを理解しています。エンドユーザにそれぞれの領域のTomcatインストールを設定させたいと思います。認証領域に関係なくユーザ名を取得

私がwebservice-methodsで必要とするのは、具体的なレルムに関係なく、ユーザーがログインに使用したユーザー名(またはid、何か一意)です。どこで入手できますか?明らかに私はこれまでに間違ったキーワードを探しました。使用したいコンセプトの具体的な名前はありますか?

ありがとうございます!

答えて

2

ログインしているユーザーはWebServiceContext#getUserPrincipal()で利用でき、PrincipalインスタンスはgetName()メソッドを返します。

など。

@Resource 
private WebServiceContext context; 

@WebMethod 
public String hello() { 
    Principal user = context.getUserPrincipal(); 
    return (user != null) ? user.getName() : "(not logged in)"; 
} 

これは、HttpServletRequest#getUserPrincipal()から入手したカバーの下にあります。

+0

ありがとうございました!これは私が必要とするものとまったく同じです。 – kobold

+0

ようこそ。 – BalusC

関連する問題