나는 다음과 같은 부두 설정을 가지고 : 나는 메이븐 부두 플러그인을 통해 임베디드 부두 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을 작성했으며,이 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>
내가 관리자로 로그인하고 있습니다.
부두가 표시하는 숨겨진 JAAS 메시지에 대한 도움은 매우 감사하겠습니다.
것은이 - - 내 로그인 모듈이 실제로이 역할 주체를 주제에 추가합니다. 사용자는 실제로 그 교장을 가지고 있습니다. 다른 힌트 요? – carlspring
예. 영역 이름이 jetty-web.xml과 web.xml에서 정확히 일치합니까 (위의 코드에 해당하지 않음). 당신의 역할은 무엇입니까? JaasRole 인스턴스? 왜 jetty.xml에서 'roleClassNames'에 3 개의 클래스를 선언할까요? 로그인 모듈 구성 파일에서 debug = true를 지정하고 로그를 보려고 했습니까? –
LoginModule과 Role을 독자적으로 구현했습니다. 영역은 web.xml 및 부두 설치 지점 모두에서 정확합니다. 로그인 모듈이 사용자를 올바르게 확인하고 해당 역할을 해당 주제에 위탁하고 있음을 알 수 있습니다. 오류 메시지는 역할이 어딘가에서 발견되지 않는다는 것을 의미하는 것으로 보입니다. 어쨌든 그것은 나에게 혼란 스럽습니다. – carlspring