0

まず第一に:私の英語を許してください。それは私の自然な舌ではありません。

JDBCレルムとその結果に問題があります。最初に、この問題に関連するweb.xmlの部分を示します。

<welcome-file-list>
    <welcome-file>user/home.xhtml</welcome-file>
</welcome-file-list>
<security-constraint>
    <display-name>userConstraint</display-name>
    <web-resource-collection>
        <web-resource-name>User-Sites</web-resource-name>
        <description>Seiten fuer den normalen User</description>
        <url-pattern>/user/*</url-pattern>
        <url-pattern>/faces/user/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <description>Alle Gruppen duerfen zugreifen</description>
        <role-name>user</role-name>
        <role-name>admin</role-name>
    </auth-constraint>
</security-constraint>
<login-config>
    <auth-method>FORM</auth-method>
    <realm-name>twiburealm</realm-name>
    <form-login-config>
        <form-login-page>/faces/login.xhtml</form-login-page>
        <form-error-page>/faces/loginError.xhtml</form-error-page>
    </form-login-config>
</login-config>
<security-role>
    <description>Normaler Anwendungs-User</description>
    <role-name>user</role-name>
</security-role>
<security-role>
    <description>Administrator</description>
    <role-name>admin</role-name>
</security-role>

ご覧のとおり、URLパターンのさまざまな部分と(ここには示されていません)すべてのさまざまな種類のウェルカムページを試しました。アプリケーションを起動すると、ログインページが期待どおりに表示されます。無効なユーザーとパスワードの組み合わせを入力すると、エラーページが表示されます。しかし、フィールドの組み合わせを入力すると、2つの異なる結果が得られます。

WindowsではUnixで期待どおりに動作します403-権限がないというエラーが表示されます

両方のシステムでjdk7-05、GlassFish 3.1.2.2、およびJSF2.1を使用しています。JDBC-、JNDI-、Pool-、Realm、およびすべてが同じであり、ユーザーはMySQL-Databaseから正常に読み取られます。すべての名前とURLは同じモードで入力されます。小文字と大文字も同じです。

Unixで403を入手する理由がよくわかりません。何か案は?

ありがとう、よろしく

4

2 に答える 2

0

オラクルが主導権を握って以来、Glassfishデプロイメント記述子のsun- *命名規則はすべて非推奨または廃止され、Glassfish-*に置き換えられました。

これには、ファイル名とルートXML要素名の両方が含まれます。

私の知る限り(これは確かではありませんが)、これはWindowsとUNIXの問題ではなく、Glassfishソフトウェアのバージョンによるものです。

于 2012-08-17T05:23:32.337 に答える
0

さて、私は問題を見つけました。したがって、誰かが同じ問題を抱えている場合:Unixでは、ファイル「glassfish-web.xml」を定義する必要があります。鉱山の内容は次のとおりです。

<glassfish-web-app error-url="">
    security-role-mapping>
        <role-name>admin</role-name>
        <group-name>admin</group-name>
    </security-role-mapping>
    <security-role-mapping>
        <role-name>user</role-name>
        <group-name>user</group-name>
    </security-role-mapping>
    <class-loader delegate="true"/>
    <jsp-config>
        <property name="keepgenerated" value="true">
            <description>Keep a copy of the generated servlet class' java code.</description>
        </property>
    </jsp-config>
</glassfish-web-app>

Windowsでは、このファイルは必要ありません。

ありがとう、よろしく

于 2012-08-16T18:23:52.243 に答える