Java ee を使用して Web アプリケーションを作成しています。私はグラスフィッシュ v4 サーバーを使用していますが、現在、web.xml ファイルでセキュリティ制約を指定してセキュリティを機能させようとしています。
私のアプリケーションは linkUI と呼ばれ、localhost:8080/linkUI/area のリソースにアクセスするにはログインが必要な保護領域を作成したかったので、Web でこれに対するセキュリティ制約を追加しました。 xml。しかし、このアドレスにアクセスしようとすると、デプロイメント記述子で構成したログイン ページにリダイレクトされる代わりに、"HTTP ステータス 404 - 見つかりません" というメッセージが表示されます (リソースはまだ作成されていません)。login.jsp に直接ログインすると、予想されるエラー ページにリダイレクトされるため、デプロイメント記述子が見つかったようです。グラスフィッシュサーバーにユーザーとグループを追加し、ここで指定されているようにデフォルトのプリンシパルからロールへのマッピングを有効にしても、ログインは常に失敗するようですが: http://docs.oracle.com/javaee/6/tutorial/doc/bncbx.html# bncby。
今何をチェックしたらいいのかわからない。助言がありますか?
これは私のweb.xmlです:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<!-- SECURITY CONSTRAINT #1 -->
<security-constraint>
<web-resource-collection>
<web-resource-name>Protected area</web-resource-name>
<url-pattern>/linkUI/area/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>testgroup</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<realm-name>file</realm-name>
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/loginError.jsp</form-error-page>
</form-login-config>
</login-config>
<security-role>
<description/>
<role-name>testgroup</role-name>
</security-role>
</web-app>