整合微软的ad域,采用ldap的api来实现用户登录验证

流程:

1.用户调登录接口,传用户名和密码

2.用户名和密码在ad验证,验证通过后,返回当前用户的相关信息。(注:ldap为java自带的api不需要maven引入其他的)

3.根据返回的用户信息,实现自己系统的业务逻辑

package com.test;

import java.util.*;
import javax.naming.*;
import javax.naming.directory.*;

public class Test01 {
    public static void main(String[] args) {
        String username = "lisi@adtest.com";
 String password = "acctId=acctId&bookId=bookID&catalogId=342781987884503040&companyId=342781985841876992";
 //调用登陆接口
 String name = login(username, password);
 System.out.println(name);
 }

    private static String login(String username, String password) {
        Hashtable env = new Hashtable();

 //LDAP工厂类
 env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
 //LDAP访问地址
 env.put(Context.PROVIDER_URL, "ldap://192.168.177.128:389/dc=adtest,dc=com");
 //账号密码
 env.put(Context.SECURITY_PRINCIPAL, username);
 env.put(Context.SECURITY_CREDENTIALS, password);
 DirContext ctx;
 String name="";
 NamingEnumeration results = null;
 try {
            ctx = new InitialDirContext(env);
 //搜索控制器
 SearchControls controls = new SearchControls();
 //建立搜索控制器
 controls.setSearchScope(SearchControls.SUBTREE_SCOPE);
 //根据设置的域节点、过滤器类和搜索控制器搜索LDAP获得结果
 results = ctx.search("", "(&(objectclass=person)(userprincipalname=" + username + "))", controls);
 SearchResult searchResult = (SearchResult) results.next();
 Attributes attributes = searchResult.getAttributes();
 //获取用户姓名
 name = attributes.get("userprincipalname").get().toString().split("@")[0];
 } catch (AuthenticationException e) {
            String erroMsg=  e.toString();
 e.printStackTrace();
 return erroMsg;
 } catch (NameNotFoundException e) {
            String erroMsg=  e.toString();
 e.printStackTrace();
 return erroMsg;
 } catch (NamingException e) {
            e.printStackTrace();
 String erroMsg=  e.toString();
 return erroMsg;
 } finally {
            if (results != null) {
                try {
                    results.close();
 } catch (Exception e) {
                }
            }
        }
        return name;
 }
}

如果验证通过会返回用户信息,验证失败会报错。

微软ad域样子:(我是通过虚拟机安装了windos sever 2012 r2 然后在其系统上,安装了AD域)
在这里插入图片描述

安装AD域的步骤可以参照:https://www.cnblogs.com/wilburxu/p/9135313.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
1  为什么需要? ......................................................................................................................... 2  2  部署第一个 ............................................................................................................................. 5  3  用备份进行Active Directory的灾难重建 .............................................................................. 27  4 部署额外控制器 ..................................................................................................................... 43  5  Active Directory的授权还原 ................................................................................................... 52  6 离线部署额外控制器 ............................................................................................................. 61  7  Active Directory的脱机碎片整理 ........................................................................................... 72  8  Active Directory的复制拓扑 ................................................................................................... 76  9   Active Directory操作主机详解 ............................................................................................. 81  10  实战操作主机角色转移 ......................................................................................................... 84 11 什么是站点 ................................................................................................................................ 96  12  实战Active Directory站点部署与管理 ................................................................................ 98  13 控制器的常规卸载 ............................................................................................................. 110  14 控制器的强制卸载 ............................................................................................................. 116  15 控制器的终极卸载 ............................................................................................................. 125  16理解信任关系 ...................................................................................................................... 131  17 实战详解信任关系 ............................................................................................................. 132  18 创建Win2003和Win2008之间的信任关系 ............................................................... 146  19 实战子部署 ......................................................................................................................... 164  20 创建可传递的林信任 ............................................................................................................. 179  21初步理解组策略 ...................................................................................................................... 188  22 组策略轻松实现软件发布 ..................................................................................................... 188  23组策略指派Office2003分发.................................................................................................. 198  24 用Veritas创建MSI文件 ...................................................................................................... 205
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值