为了账号安全,请及时绑定邮箱和手机立即绑定

JAVA通过LDAP做用户登录认证,怎么做业务的异常处理?

JAVA通过LDAP做用户登录认证,怎么做业务的异常处理?

桃花长相依 2019-02-13 13:15:56
通过java.namming包实现LDAP用户登录认证,怎么区分账号被冻结、停用、不存在等异常的业务情况呢?参考的是:网上普遍流传的LDAP连接的代码public boolean auth(String username, String password) {    //设置相关常量    String initialContextFactory ="com.sun.jndi.ldap.LdapCtxFactory";    String ad4ProviderURL ="ldap://ip:port";    String securityAuthentication ="simple";    String domain ="ad4";    if (!username.startsWith(domain)) {        username = domain+"\"+ username;    }    /*     * 组织参数集合     */    Hashtable<String,String> env = new Hashtable<String,String>();    //set the initializing information of the context    env.put(javax.naming.Context.INITIAL_CONTEXT_FACTORY, initialContextFactory);    //set the URL of ldap server    env.put(javax.naming.Context.PROVIDER_URL, ad4ProviderURL);    //set the authentication mode    env.put(javax.naming.Context.SECURITY_AUTHENTICATION, securityAuthentication);    //set user of AD    env.put(javax.naming.Context.SECURITY_PRINCIPAL, username);    //set password of user    env.put(javax.naming.Context.SECURITY_CREDENTIALS, password);    /*     * 进行LDAP连接     */    javax.naming.ldap.LdapContext ctx = null;    //initialize the ldap context    try {        ctx = new javax.naming.ldap.InitialLdapContext(env, null);    } catch (javax.naming.NamingException ex) {        System.out.println("Authentication error, username is:"+ username);        return false;    } finally {        if (ctx != null) {            try {                ctx.close();            } catch (javax.naming.NamingException ex) {                System.out.println("Close Authentication context error");                ex.printStackTrace();            }            return true;    //获取的LdapContext对象不为空,则为登录成功        }    }    return false;    //否则登录失败}
查看完整描述

2 回答

?
守着一只汪

TA贡献1872条经验 获得超3个赞

user表中存储着user_status,定义用户的状态。


查看完整回答
反对 回复 2019-04-25
?
慕妹3146593

TA贡献1820条经验 获得超9个赞

遇到同样的问题,兄弟,解决没?我也是用 java.namming,即使是用户被锁定,抛出的异常也只是 javax.naming.AuthenticationException: [LDAP: error code 49 - Invalid Credentials],找不到其他信息了


查看完整回答
反对 回复 2019-04-25
  • 2 回答
  • 0 关注
  • 1144 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信