javax.naming.ServiceUnavailableException:套接字已关闭
我尝试通过LDAP授权用户javax.naming.ServiceUnavailableException:套接字已关闭,java,spring,ldap,Java,Spring,Ldap,我尝试通过LDAP授权用户 public Authentication authenticate(Authentication auth) throws AuthenticationException { String username = getUserNameFromAuth(auth); String password = auth.getCredentials().toString(); HelpDescUser userDetails =
public Authentication authenticate(Authentication auth) throws AuthenticationException {
String username = getUserNameFromAuth(auth);
String password = auth.getCredentials().toString();
HelpDescUser userDetails = (HelpDescUser) userDetailsService.loadUserByUsername(username);
String email = userDetails.getEmail();
String url = "ldap://" + ldapHost + ":" + port + "/";
ActiveDirectoryLdapAuthenticationProvider ldapProvider =
new ActiveDirectoryLdapAuthenticationProvider(null, url, rootDn);
ldapProvider.setSearchFilter(filter);
Authentication authenticate = ldapProvider.authenticate(new UsernamePasswordAuthenticationToken(email, password));
if (authenticate.isAuthenticated()) {
return new UsernamePasswordAuthenticationToken(userDetails, password, userDetails.getAuthorities());
}
}
我收到这个:
原因:javax.naming.ServiceUnavailableException:okmarket.ru:636;
插座关闭在
java.naming/com.sun.jndi.ldap.Connection.readReply(Connection.java:426)
在
java.naming/com.sun.jndi.ldap.LdapClient.ldapBind(LdapClient.java:365)
在
java.naming/com.sun.jndi.ldap.LdapClient.authenticate(LdapClient.java:214)
位于java.naming/com.sun.jndi.ldap.LdapCtx.connect(LdapCtx.java:2795)
位于java.naming/com.sun.jndi.ldap.LdapCtx.(LdapCtx.java:320)
java.naming/com.sun.jndi.ldap.LdapCtxFactory.getUsingURL(LdapCtxFactory.java:192)
在
java.naming/com.sun.jndi.ldap.LdapCtxFactory.getUsingURLs(LdapCtxFactory.java:210)
在
java.naming/com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxInstance(LdapCtxFactory.java:153)
在
java.naming/com.sun.jndi.ldap.LdapCtxFactory.getInitialContext(LdapCtxFactory.java:83)
在
java.naming/javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:730)
在
java.naming/javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:305)
在
java.naming/javax.naming.InitialContext.init(InitialContext.java:236)
在
java.naming/javax.naming.ldap.InitialLdapContext。(InitialLdapContext.java:154)
怎么了?问题出在我这边还是LDAP那边?检查服务器详细信息。您是否能够ping到服务器。检查LDAP是否启动。LDAP似乎已关闭。别担心,我只是尝试连接
LDAP://
和端口636
。
正确的方法是发出
ldaps://
请求或设置端口389
看起来像是防火墙问题或不正确的连接参数,请参阅:请将其放在问题的评论部分,而不是作为答案。