Spring Security:访问被拒绝异常

时间:2014-08-02 17:02:55

标签: java spring spring-mvc spring-security spring-security-ldap

我正在尝试使用OpenLDAP服务器使用LDAP配置Spring Security,我将其配置为在用户打开应用程序时重定向到我自己的LoginController。但是,每当我尝试连接到应用程序时,它都会抛出一个AccessDeniedException,它永远不会进入我的LoginController

这是我的配置:

<bean name="/login" class="controller.LoginController" />

<s:ldap-server url="ldap://localhost:389/dc=maxcrc,dc=com" />

<s:http pattern="/login*" security="none" />
<s:http auto-config="true" use-expressions="true">
    <s:intercept-url pattern="/**" access="isAuthenticated()" />
    <s:logout invalidate-session="true" logout-url="/logout" logout-success-url="/login" />
    <s:form-login login-page="/login" login-processing-url="/j_spring_security_check" />
</s:http>

<s:authentication-manager alias="authenticationManager">
    <s:ldap-authentication-provider user-dn-pattern="uid={0},ou=people" />
</s:authentication-manager>

这是我的LoginController

public class LoginController extends AbstractController {

  @Override
  protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) {
    return new ModelAndView("LOGIN");
  }

}

1 个答案:

答案 0 :(得分:1)

检查您是否可以匿名访问ldap服务器,因为您没有指定要连接的帐户,如下例所示:

<security:ldap-server url="ldap://localhost:10389/o=mojo" 
       manager-dn="uid=admin,ou=system"    manager-password="secret" />

这是一个很好的教程,可以正确地进行ldap身份验证:http://krams915.blogspot.ru/2011/01/spring-security-mvc-using-ldap.html