猿问

javax.naming.ServiceUnavailableException:套接字关闭

我尝试通过 LDAP 授权用户。


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。 java 中的 getInitialContext(LdapCtxFactory.java:83)。


怎么了?是我这边的问题,还是 LDAP 那边的问题?


白板的微信
浏览 201回答 3
3回答

拉莫斯之舞

别担心,我只是尝试连接ldap://和端口636。正确的方法是发出ldaps://请求或设置端口389。

慕田峪9158850

检查服务器详细信息。您是否能够 ping 到服务器。

翻翻过去那场雪

检查 LDAP 是否启动。好像 LDAP 已关闭。
随时随地看视频慕课网APP

相关分类

Java
我要回答