Java 无法从kerberos获取用于ldap身份验证侦听器的用户

Java 无法从kerberos获取用于ldap身份验证侦听器的用户,java,spring,spring-security,ldap,kerberos,Java,Spring,Spring Security,Ldap,Kerberos,我使用kerberos进行身份验证,使用ldap进行授权。 我的kerberos身份验证工作正常。我面临的问题是在kerberos返回用户名之前调用ldap。 我的ldap代码在一个拦截器中,该拦截器首先被调用,但它将request.getRemotUser()作为null获取,kerberos将在这之后返回username,正如我在日志中看到的那样。 那么,如何先调用kerberos,然后调用ldap呢? 我的ldap代码位于springs HandlerInterceptorAdaptor的

我使用kerberos进行身份验证,使用ldap进行授权。 我的kerberos身份验证工作正常。我面临的问题是在kerberos返回用户名之前调用ldap。 我的ldap代码在一个拦截器中,该拦截器首先被调用,但它将request.getRemotUser()作为null获取,kerberos将在这之后返回username,正如我在日志中看到的那样。 那么,如何先调用kerberos,然后调用ldap呢? 我的ldap代码位于springs HandlerInterceptorAdaptor的preHandlerMethod Interceptor类中:

拦截器在application-servlet.xml中定义,kerberos在security-config.xml中配置,两个条目都在web.xml中创建。security-config.xml位于web.xml中application-servlet.xml之前 所以在上面的代码中,我得到的用户名为null,但在日志中,当调用kerberos时,它会返回我的用户名。很抱歉没有发布详细的代码。我希望这个问题可以理解


也许我不太理解您试图解决的问题,但为什么不注入一个,作为您的用户详细信息服务


通过这种方式,Kerberos进行身份验证,Ldap进行授权(即填充对象)。

是否关闭此问题或发表评论,说明为什么给定的答案不算数?现在,它将显示为开放的,可能会混淆其他用户。
@override
public boolean preHandler(HttpServletRequest request,HttpServletResponse response,Object handler){
 String userName = request.getRemoteUser();
...
  if (isAuthorized(userName)) {
    //setting userName in session here
  }
  else {
    //ldap authentication failed
  }
}