我正在尝试使用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");
}
}
答案 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