0

カスタム データベース サーバー ログイン モジュールを作成し、j_security_check を使用してフォームを作成しましたが、問題は次のとおりです。

  1. jboss がエラー コード 408 を返すことがあります。ログインに成功すると、web.xml の * form-login-pageタグで定義されたページにリダイレクトされません。* ( 408: リクエストのタイムアウト: サーバーが待機する準備ができている時間内に、クライアントはリクエストを生成しませんでした。クライアントは、後で変更せずにリクエストを繰り返すことができます。 )
  2. jboss がエラー コード 400 を返す場合があります (不正なリクエスト: 不正な形式の構文のため、サーバーがリクエストを理解できませんでした。クライアントは、変更せずにリクエストを繰り返すべきではありません。 )。
  3. 役割 x に許可されるように定義されているページ。私はそれを実行し、ログインせずに正常に表示できます。
  4. 残念ながら、上記の問題に対する特定のシナリオはありません。

これは、web.xml の security-cosntraint タグです。

<security-constraint>
    <web-resource-collection>
        <web-resource-name>InstitutionRole</web-resource-name>
        <url-pattern>/jsfs/services/ManageData.jsf</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>Institution_delegate</role-name>
    </auth-constraint>
</security-constraint>

<login-config>
    <auth-method>FORM</auth-method>
    <form-login-config>
        <form-login-page>/index.jsf</form-login-page>
        <form-error-page>/jsfs/errors/loginError.jsf</form-error-page>
    </form-login-config>

</login-config>
<security-role>
    <description>Institution Delegate Role</description>
    <role-name>Institution_delegate</role-name>
</security-role>
<servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.faces</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>/faces/*</url-pattern>
</servlet-mapping>

助けてください....何かアイデア????

4

1 に答える 1

0

この問題の回答は、デプロイメント記述子ファイル web.xml にありました...

セキュリティ制約では、「form-login-page」タグのページ URL は「ログイン成功後のページ」ではなくログイン ページ URLであるため、page1.jsf を呼び出していて、ログイン前にログインしていない場合。 jsf も自動的に立ち上がります。

それで

Page : /page1.jsf for role : x に制約がある場合

 <security-constraint>
<web-resource-collection>
    <web-resource-name>x</web-resource-name>
    <url-pattern>/page1.jsf</url-pattern>
</web-resource-collection>
<auth-constraint>
    <role-name>x</role-name>
</auth-constraint>

<security-role>
    <description>x Role</description>
    <role-name>x</role-name>
</security-role>

あなたが入れなければならない

<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
    <form-login-page>/login.jsf</form-login-page>
    <form-error-page>/jsfs/errors/loginError.jsf</form-error-page>
</form-login-config>

このソリューションがあなたに役立つことを願っています....

于 2013-03-05T06:45:27.813 に答える