私は、次の突堤のセットアップを持っている:私はMavenの突堤プラグイン経由で組み込みのJetty 7.6.1.v20120215を使用していますJAAS:!roleを使用してログインすると、エラーはどうなりますか?
<New class="org.eclipse.jetty.plus.jaas.JAASLoginService">
<Set name="Name">FOO JAAS Realm</Set>
<Set name="LoginModuleName">foo</Set>
<Set name="roleClassNames">
<Array type="java.lang.String">
<Item>foo.jaas.principal.UserPrincipal</Item>
<Item>foo.jaas.principal.RolePrincipal</Item>
<Item>org.eclipse.jetty.plus.jaas.JAASRole</Item>
</Array>
</Set>
</New>
。
私が持っているフォームからログインしようとすると、ログインフィールドは/ j_security_checkに正しく送信されます。私は呼び出された独自のLoginModuleを作成し、ユーザを適切に検証します。彼らのプリンシパルがデータベースから正しくフェッチされているのがわかります。代わりに、保護されたページを示されているの
は、桟橋は私を示しています
HTTP ERROR 403
Problem accessing /foo/auth.html. Reason:
!role
私はそれが本当にそのことで何を意味するのか、非常に分かりません。
私は私のweb.xmlに次き:
<security-constraint>
<web-resource-collection>
<web-resource-name>ADMINISTRATOR</web-resource-name>
<url-pattern>/auth.html</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>ADMINISTRATOR</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<realm-name>foo</realm-name>
<form-login-config>
<form-login-page>/login.html</form-login-page>
<form-error-page>/authfail.html</form-error-page>
</form-login-config>
</login-config>
<security-role>
<role-name>ADMINISTRATOR</role-name>
</security-role>
<security-role>
<role-name>USER</role-name>
</security-role>
私は管理者としてログインしています。
Jettyによって表示された潜在的なJAASメッセージに関する助けをいただければ幸いです。
事があります - - 私のログインモジュールは実際にこれらの役割の主体を主語に追加しています。ユーザーは実際にそのプリンシパルを持っています。その他のヒント? – carlspring
あなたのrealm名は、jetty-web.xmlとweb.xmlで正確に一致していますか(上記のコードではそうではありません)。あなたの役割は何ですか? JaasRoleインスタンス?なぜ 'roleClassNames'のjetty.xmlに3つのクラスを宣言するのですか?ログインモジュール構成ファイルでdebug = trueを指定してログを監視しようとしましたか? –
私は自分自身でLoginModuleとRoleを実装しています。レルムはweb.xmlとjettyの両方の設定ポイントで正しいです。私は、ログインモジュールがユーザーを正しく検証しており、その役割をサブジェクトにコミットしていることがわかります。エラーメッセージは、ロールがどこかに見つからないことを意味するように見えます。 – carlspring