2012-10-18 26 views
1

我在JBoss 7上的webapp中使用基於表單的身份驗證,由LdapLoginModule支持。成功的表單身份驗證後的403

<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中輸入無效密碼。如果我把雖然我送到/但得到以下錯誤在瀏覽器中正確的密碼:

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

爲什麼我會被被成功後談判登錄表單拒絕對index.html的訪問?沒有任何日誌輸出的跡象。

回答

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 Web的應用程序)現在的工作
相關問題