2011-06-28 7 views
1

JSFでフォームベースの認証を行っていますが、動作させることはできますが、JAASセキュリティドメイン情報を指定するにはサーバー固有のデプロイメント記述子が必要です。JAASのセキュリティドメイン情報は、サーバー固有のデプロイメント記述子でのみ指定できますか?

例えば、 JBossの6の上に私は次のとWEB-INF/jboss-web.xml必要があります同様のGlassFishの何かに

<jboss-web> 
    <security-domain>java:/jaas/myAppDomain</security-domain> 
</jboss-web> 

を代わりにWEB-INF/sun-web.xmlにする必要があります。

EE6でベンダーに中立的な方法がありますか?そして、なぜならば、なぜですか?

答えて

0

これをEE6で行うには中立的な方法はありますか?

はい、あります。除いて、sun-web.xml内の任意のエントリなしGlassfishの中

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> 
... 
    <login-config> 
     <auth-method>FORM</auth-method> 
     <realm-name>myRealm</realm-name> <!-- the name of the realm created in the application server should be specified here --> 
     <form-login-config> 
      <form-login-page>/login.xhtml</form-login-page> 
      <form-error-page>/login-error.xhtml</form-error-page> 
     </form-login-config> 
    </login-config> 
... 
</web-app> 

上記作品:あなたは下に示したものと同様に、web.xmlファイルにレルム名を指定する必要があります(認可制約を実施するために使用される)グループマッピングの役割JBossの配備記述子でsecurity-domain要素を指定

あなたはWebモジュールとEJBモジュールを持っている場合、より良いアプローチであること必見使用JBossで唯一のセキュリティマネージャからプリンシパル(および他のコンテナでの同等の実装)。

JAASログインモジュールがどのように動作し、ejb-jar.xmlに認証のレルムを指定できない場合、EJBコンテナは、別のログインモジュールからの認証応答に基づいてビジネスメソッド呼び出しを許可する可能性があります。意図されました)。これは、異なるレルムにあるがビジネス・メソッドで許可されたロールにマップされた同じグループのユーザーがビジネス・メソッドを呼び出すことができることを意味します。ベンダー固有のデプロイメント記述子にセキュリティドメインを指定するのは、このシナリオを避けるためです。

注 - WARにデプロイされたEJB用のJAASログインモジュールを選択する際のコンテナの動作が不明です。