2012-10-18 3 views
1

저는 JBoss 7의 webapp에서 LdapLoginModule을 기반으로 폼 기반 인증을 사용하고 있습니다.성공적인 폼 인증 후

<security-constraint> 
    <web-resource-collection> 
     <web-resource-name>Protected Resources</web-resource-name> 
     <url-pattern>/*</url-pattern> 
    </web-resource-collection> 
    <auth-constraint> 
     <role-name>*</role-name> 
    </auth-constraint> 
    <user-data-constraint> 
     <transport-guarantee>NONE</transport-guarantee> 
    </user-data-constraint> 
</security-constraint> 
<login-config> 
    <auth-method>FORM</auth-method> 
    <realm-name>ldap</realm-name> 
    <form-login-config> 
     <form-login-page>login.html</form-login-page> 
     <form-error-page>login.html</form-error-page> 
    </form-login-config> 
</login-config> 

액세스 중/login.html로 보내졌으며 /j_security_check에 잘못된 비밀번호를 입력했습니다. 내가 보내 해요 /하지만 브라우저에서 다음과 같은 오류를 얻을 수 있지만 올바른 암호를 넣을 경우 : I가 성공적으로 로그인 폼을 협상 한 후 index.html을 액세스가 거부되는 것입니다 왜

HTTP Status 403 - Access to the requested resource has been denied 

?를 로그 출력의 흔적은 없습니다.

답변

1

이것은 역할 기반 인증에 대한 것 같습니다.

<security-role> 
    <role-name>*</role-name> 
</security-role> 
<security-constraint> 
    <web-resource-collection> 
     <web-resource-name>Protected Resources</web-resource-name> 
     <url-pattern>/*</url-pattern> 
    </web-resource-collection> 
    <auth-constraint> 
     <role-name>*</role-name> 
    </auth-constraint> 
    <user-data-constraint> 
     <transport-guarantee>NONE</transport-guarantee> 
    </user-data-constraint> 
</security-constraint> 
<login-config> 
    <auth-method>FORM</auth-method> 
    <realm-name>ldap</realm-name> 
    <form-login-config> 
     <form-login-page>/login.html</form-login-page> 
     <form-error-page>/login.html</form-error-page> 
    </form-login-config> 
</login-config> 

그리고 다음 JBoss의 로그인 모듈 :

<login-module code="org.jboss.security.auth.spi.LdapExtLoginModule" flag="required"> 
    <module-option name="java.naming.provider.url" value="ldap://localhost:389"/> 
    <module-option name="java.naming.security.authentication" value="simple"/> 
    <module-option name="bindDN" value="cn=Manager,dc=domain,dc=com"/> 
    <module-option name="baseCtxDN" value="ou=people,dc=domain,dc=com"/> 
    <module-option name="baseFilter" value="(cn={0})"/> 
    <module-option name="bindCredential" value="password"/> 
    <module-option name="principalDNPrefix" value="cn="/> 
    <module-option name="principalDNSuffix" value=",ou=people,dc=domain,dc=com"/> 
    <module-option name="rolesCtxDN" value="ou=groups,dc=domain,dc=com"/> 
    <module-option name="uidAttributeID" value="uid"/> 
    <module-option name="matchOnUserDN" value="true"/> 
    <module-option name="roleAttributeID" value="cn"/> 
    <module-option name="roleAttributeIsDN" value="false"/> 
    <module-option name="roleRecursion" value="-1"/> 
    <module-option name="roleFilter" value="(member={1})"/> 
    <module-option name="allowEmptyPasswords" value="false"/> 
    <module-option name="Context.REFERRAL" value="follow"/> 
    <module-option name="throwValidateError" value="true"/> 
</login-module> 
은 다음의 web.xml (이제 2.5 대신 2.3의 웹 응용 프로그램)으로 지금 일하고있어