2012-01-30 19 views
2

Glassfish 3.1.1に配備されたJAX-WSを使用してWebサービスをセットアップしました。私はクライアント証明書(相互認証)でSSLを設定することができましたが、適切な認証を行う方法を理解することはできません。私は、読み取り専用アクセス、データの更新と削除のための役割を設定するのが好きです。Glassfish Webサービスの承認

Java EE 6チュートリアルとglassfishセキュリティガイドでは、ユーザーを証明書レルムJava EE Tutorialに追加することはできません。では、相互認証を使用している間にユーザーを認証する適切な方法は何ですか?ユーザー名とパスワードを使用する必要がありますか?

答えて

1

http://docs.oracle.com/cd/E18930_01/html/821-2435/ggktf.html#gksdc

public class CertificateLM extends AppservCertificateLoginModule 
{ 

    protected void authenticateUser() throws LoginException 
    { 
     // get the DN from the X500Principal. 
     String dname = getX500Principal().getName(); 

     // retrieve the groups of the DN from an external source, e.g. from LDAP 
     String[] groups = getGroupsFromLDAP(dname); 

     if(groups != null) { 
      commitUserAuthentication(groups); 
     } 
     else { 
      throw new LoginException("DN is unknown."); 
     } 
    } 
} 
+0

感謝を見て、これは作業的なアプローチのように見えます。私は、Java EEとglassfish(セキュリティ注釈、ユーザー/グループ管理を使用)によって提供されるロールベースのアクセス制御を活用できるソリューションを期待していました。だから私は実際にクライアント証明書と一緒に基本認証を使用したのです。 – TPete

+0

上記のスナップは、アプリケーションサーバーのJAASレイヤーにプラグインされています。 あなたのJEEアプリケーションは、@annotationsのような標準のJEEセキュリティを引き続き使用することができます。 – PA314159

+0

私は参照してください。これは外部のシステム(上記のLDAPのようなもの)が必要ないように、これをユーザーアカウント管理にもリンクできますか? – TPete

関連する問題