JSF を使用した Java EE での Web アプリケーションの開発。すべてのページは、アクション「j_security_check」と入力「j_username」および「j_password」を備えた認証フォームによって表示から保護されています。
ただし、ログインに成功した後、アクセスしたいページではなく、この URL にリダイレクトされます。
/faces/javax.faces.resource/jsf.js?ln=javax.faces&stage=Development
そのため、表示したいページではなく、すべての JS コードを含むスクリプト ファイル jsf.js を見ています。Web ルートにアクセスするか他のページにアクセスするかは関係ありません。毎回この URL にリダイレクトされます。次に、URL を任意のページに変更すると、正常に読み込まれ、ログインされます。
この問題はすでに魔法のように消えてしまったため、正しくリダイレクトされたと言わざるを得ません。数週間後、再び壊れましたが、それが私のせいであったかどうかはわかりません。リダイレクトやナビゲーションのルールをまったくいじっていませんでした。
私も PrettyFaces を使用しています。
編集:
<security-constraint>
<display-name>secured</display-name>
<web-resource-collection>
<web-resource-name>all</web-resource-name>
<description/>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<description/>
<role-name>admin</role-name>
<role-name>teacher</role-name>
</auth-constraint>
</security-constraint>
<security-constraint>
<display-name>secured for admins</display-name>
<web-resource-collection>
<web-resource-name>admin pages</web-resource-name>
<description/>
<url-pattern>/admin/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<description/>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
<security-constraint>
<display-name>unsecured</display-name>
<web-resource-collection>
<web-resource-name>css</web-resource-name>
<description/>
<url-pattern>/css/*</url-pattern>
</web-resource-collection>
<web-resource-collection>
<web-resource-name>js</web-resource-name>
<description/>
<url-pattern>/js/*</url-pattern>
</web-resource-collection>
<web-resource-collection>
<web-resource-name>img</web-resource-name>
<description/>
<url-pattern>/img/*</url-pattern>
</web-resource-collection>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<realm-name>wetk-security</realm-name>
<form-login-config>
<form-login-page>/faces/login.xhtml</form-login-page>
<form-error-page>/faces/login.xhtml</form-error-page>
</form-login-config>
</login-config>