gpt4 book ai didi

java - 表单验证成功后出现 403

转载 作者:太空宇宙 更新时间:2023-11-04 08:00:10 25 4
gpt4 key购买 nike

我在 JBoss 7 上的 Web 应用程序中使用基于表单的身份验证,由 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。如果我输入正确的密码,虽然我被发送到/但在浏览器中收到以下错误:

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

为什么在成功协商登录表单后我会被拒绝访问index.html?没有任何日志输出的迹象。

最佳答案

这似乎取决于基于角色的身份验证。它现在可以使用以下 web.xml(现在作为 2.5 而不是 2.3 Web 应用程序):

<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>

关于java - 表单验证成功后出现 403,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12962653/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com