1

ログイン認証にデータレルムを使用しています。それはうまくいきます。また、アプリでprimefaces 3.2コンポーネントを使用していますが、これらも正常に機能しますが、ログイン前にホームページで問題が発生します。Primefacesコンポーネントが正しくレンダリングされず(たとえば、タブメニューが上下に単純なリンクとして表示され、ボタンが単純なjsfボタンとして表示されるなど)、ブラウザから閲覧履歴をクリアすると、ログインが正常に機能します。 Primefacesは正しくレンダリングされますが、レルムが機能しなくなり、エラーページにリダイレクトされます。なぜこれが発生するのですか?どうすれば解決できますか?これにより、私のアプリのホームページが台無しになりました。

4

1 に答える 1

2

Primefacesリソースは制限されたフォルダにあるようです。セキュリティ制約の定義からリソースフォルダを除外します。

これは、私のプロジェクトの1つからの構成例です。まず、プロジェクト全体へのアクセスを制限します(特定の役割のみにアクセスを許可します)。

<security-constraint>
        <display-name>Secured project</display-name>
        <web-resource-collection>
            <web-resource-name>Secured project</web-resource-name>
            <description/>
            <url-pattern>/*</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <description/>
            <role-name>user</role-name>
            <role-name>admin</role-name>
        </auth-constraint>
    </security-constraint>

次に、すべてのユーザーがアクセスできるフォルダーの例外を追加します。

<security-constraint>
    <display-name>Exceptions</display-name>
    <web-resource-collection>
        <web-resource-name>Exceptions</web-resource-name>
        <description/>
        <url-pattern>/resources/*</url-pattern>
        <url-pattern>/faces/resources/*</url-pattern>
        <url-pattern>/faces/javax.faces.resource/*</url-pattern>
    </web-resource-collection>
</security-constraint>

これをセキュリティポリシーとフォルダ構造に適合させる必要があります。

于 2012-06-07T09:28:07.077 に答える