Java AD域登录实现正常本地登录操作

本文档整理了Java实现AD域登录的操作步骤,包括新建测试类、AD域的身份验证逻辑,以及验证成功后如何代入项目登录接口。需要注意的是,验证成功后保存用户名以确保正常登录。代码实现后,可以使用AD域账号进行登录测试。
摘要由CSDN通过智能技术生成

前言

因为最近公司需要项目进行域账号的登录,查找了许多资料,都是零零散散的,所以在这里整理一下步骤,希望帮到大家

新建一个测试类

package com.numberone.web.controller.common;


import javax.naming.AuthenticationException;
import javax.naming.Context;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;
import java.util.Hashtable;

/**
 * Created by kelvan.cai on 2019/6/10 0010.
 */
public class AdLogin {
   
    public static void main(String[] args) {
   
        String userName = "123@qq.com";//AD域认证,用户的登录UserName
        String password = "123";//AD域认证,用户的登录PassWord
        String host = "*.*.*.*";//AD域IP,必须填写正确 *号改为自己的IP
        String domain = "@qq.com";//域名后缀,例.@noker.cn.com 对应userName@
        String port = "389"; //端口,一般默认389
        String url = new String("ldap://" + host + ":" + port);//固定写法
        String user = userName.indexOf(domain) > 0 ? userName : userName
                + domain;//网上有别的方法,但是在我这儿都不好使,建议这么使用
        Hashtable env = new Hashtable();//实例化一个Env
        DirContext ctx = null;
        env.put(Context.SECURITY_AUTHENTICATION, "simple");//LDAP访问安全级别(none,simple,strong),一种模式,这么写就行
        env.put(Context.SECURITY_PRINCIPAL, user); //用户名
        env.put(Context.SECURITY_CREDENTIALS, password);//密码
        env.put(Context.INITIAL_CONTEXT_FACTORY,
                "com.sun.jndi.ldap.LdapCtxFactory");// LDAP工厂类
        env.put(Context.PROVIDER_URL, url);//Url
        try {
   
            ctx = new InitialDirContext(env);// 初始化上下文
            System.out.println("身份验证成功!");
        } catch <
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值