0

アプリケーションが Wildfly 8.1.0.Final にデプロイされている場合、PrettyFaces はリダイレクトを含むすべてのリクエストでセッションを強制終了します。同じアプリが Wildfly 8.0.0.Final にデプロイされ、正しく動作します。

8.1.0 では、PrettyFaces が原因で、サーブレット スタックがセッション ID を取得できないように見えます。

どちらの場合も、ログには例外が表示されません。URL の書き換えは発生しますが、セッション情報 (ログイン情報を含む) は失われます。これは私の pretty-config.xml です

<pretty-config xmlns="http://ocpsoft.org/schema/rewrite-config-prettyfaces"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://ocpsoft.org/schema/rewrite-config-prettyfaces
                  http://ocpsoft.org/xml/ns/prettyfaces/rewrite-config-prettyfaces.xsd">

<url-mapping id="user-settings">
    <pattern value="/protected/user/settings/"/>
    <view-id value="/protected/usersettings.xhtml"/>
</url-mapping>

<url-mapping id="thread-edit">
    <pattern value="/protected/threads/edit/#{stitchId}/" />
    <view-id value="/protected/threads/stitch.xhtml" />
    <action>#{stitchEditBean.editStitchFromId(stitchId)}</action>
</url-mapping>

<url-mapping id="threads-index">
    <pattern value="/protected/threads/" />
    <view-id value="/protected/threads/index.xhtml" />
</url-mapping>
</pretty-config>

PrettyFaces 2.0.12.Final と 3.0.0.Alpha2 の両方で障害が発生します。

4

2 に答える 2

2

Ken が指摘したように、根本的な問題はhttps://issues.jboss.org/browse/WFLY-3448に関連しています。

明示的な Cookie パスを web.xml に追加すると、問題が回避され、安全になります。

<session-config>
    <session-timeout>30</session-timeout>
    <cookie-config>
        <!--
        A bug in wildfly 8.1.0.final requires this path to be set explicitly or occasionally the default is
        incorrect and the system will generate one cookie per directory incorrectly.
        -->
        <path>/</path>
    </cookie-config>
</session-config>

アプリの各ディレクトリにある不正な Cookie を手動でクリアするか、すべてのセッション Cookie をフラッシュする必要がある場合があります。そうしないと、古いセッション Cookie がハングアップして問題が発生する可能性があります。

于 2014-08-27T15:31:31.643 に答える