使用JAVA进行ad域身份验证常用属性详解

一些变态的公司经常对开发者提出一些变态的问题。比如在oa系统中,要求登录验证必须使用ad域进行登录。还有的如登录crm系统必须使用公司的阿里云邮箱账号进行身份验证等等。

作为程序员我们只能按照客户的需求进行完善系统。毕竟客户才是我们的衣食父母,没办法拒绝。我这里就列举一些,在系统中集成ad域身份验证的一些配置信息,并一一解释他们的作用。

直接看代码:

public boolean login() {
		// 判断必填字段是否全部填写
		if (StringUtils.isEmpty(this.username)
			|| StringUtils.isEmpty(this.domain)
			|| StringUtils.isEmpty(this.ip)) {
			logger.info("必填信息为空,LDAP连接失败!");
			return false;
		}
		Properties env = new Properties();
		String account = this.username + "@" + this.domain;
		String ldapURL = "LDAP://" + this.ip + ":" + this.port;
		env.put(Context.PROVIDER_URL, ldapURL);
		env.put(Context.SECURITY_AUTHENTICATION, "simple");
		env.put(Context.SECURITY_PRINCIPAL, account);
		env.put(Context.SECURITY_CREDENTIALS, this.password);
        env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
        //批量处理
        env.put(Context.BATCHSIZE, "50");
        // 连接超时设置
        env.put("com.sun.jndi.ldap.connect.timeout", "3000");
        // LDAP连接池
        env.put("com.sun.jndi.ldap.connect.pool", "true");
        // LDAP连接池最大数
        env.put("com.sun.jndi.ldap.connect.pool.maxsize", "3");
        // LDAP连接池优先数
        env.put("com.sun.jndi.ldap.connect.pool.prefsize", "1");
        // LDAP连接池超时
        env.put("com.sun.jndi.ldap.connect.pool.timeout", "300000");
        // LDAP连接池初始化数
        env.put("com.sun.jndi.ldap.connect.pool.initsize", "1");
        // LDAP连接池的认证方式
        env.put("com.sun.jndi.ldap.connect.pool.authentication", "simple");
		try {
			dc = new InitialLdapContext(env, null);
			logger.info("域用户" + this.username + " 登录" + account + "成功!");
			return true;
		} catch (Exception e) {
			logger.info("域用户" + this.username + " 登录" + account + "失败!");
			return false;
		}
	}

欢迎大家关注我的博客!如有疑问,请加QQ群:135430763共同学习!

时间: 2024-07-28 19:45:41

使用JAVA进行ad域身份验证常用属性详解的相关文章

Ad域身份验证总结

活动目录(Active Directory)是面向Windows Standard Server.Windows Enterprise Server以及 Windows Datacenter Server的目录服务.(Active Directory不能运行在Windows Web Server上,但是可以通过它对运行Windows Web Server的计算机进行管理.)Active Directory存储了有关网络对象的信息,并且让管理员和用户能够轻松地查找和使用这些信息.Active Di

Ext.form.ComboBox常用属性详解

Ext.form.ComboBox常用属性详解 标签: Extjs js combo js 代码 var combo = new Ext.form.ComboBox({ store : new Ext.data.SimpleStore({ fields : ['value', 'text'], data : [['1001', '小儿迪巧'], ['1002', '成人迪巧'], ['1003', '秀源']] }), hiddenName:'product_code',//提交到后台的inpu

css中display常用属性详解之Block(一)

用了几年的css了,css中inline | block |inline-block|table|flex从来没有做过系统的整理和分析,网上的分析文章也很多,零散. 今天有空,就在这做一下整理分析 block 解释:指定对象为块元素(占据一定矩形空间,可以通过设置高度.宽度.内外边距等属性,来调整的这个矩形的样) 特点:1.处于常规流中时,如果width没有设置,会自动填充满父容器  2.可以应用margin/padding  3.在没有设置高度的情况下会扩展高度以包含常规流中的子元素  4.处

web前端入门到实战:html/css弹性布局的几大常用属性详解

弹性布局的名称概念: 1.容器:需要添加弹性布局的父元素:项目:弹性布局容器中的每一个子元素,称为项目. 2.主轴:在弹性布局中,我们会通过属性规定水平/垂直方向(flex-direction)为主轴:与主轴垂直的另一方向,称为交叉轴. 弹性布局的重要的几大基础属性: 1.flex-direction属性决定主轴的方向(即项目的排列方向). row(默认值): 主轴为水平方向,起点在左端: row-reverse: 主轴在水平方向,起点在右端 : column:主轴为垂直方向,起点在上沿. co

使用java连接AD域,验证账号密码是否正确

eb项目中有时候客户要求我们使用ad域进行身份确认,不再另外做一套用户管理系统.其实客户就是只要一套账号可以访问所有的OA,CRM等办公系统.这就是第三方验证.一般有AD域,Ldap,Radius,邮件服务器等.最常用的要数AD域了.因为window系统在国内占据了大量的江山.做起来也很方便.我这篇文章就是写,如何用java去实现AD域的身份验证.好了,直接看代码吧: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

JAVA修改AD域密码_免证书认证

更改用户账户密码,必须要使用ssl方式登录到AD. 网上大部分教程使用TrustStore的方式连接, Hashtable env = new Hashtable(); System.setProperty("javax.net.ssl.trustStore", KEYSTORE); System.setProperty("javax.net.ssl.trustStorePassword", KEYSTORE_PWD); env.put(Context.INITIA

Windows Azure SSTP模式VPN Client使用AD域用户验证登录

我们上面一篇文章介绍了,如何在windows azure下搭建SSTP模式的vpn服务,搭建配置后我们遗留了一个,什么问题呢,我们都知道,一般的独立vpn是使用独立的账户及密码的,尤其是托管到外面的vpn服务器,无法使用AD域用户验证.这样会造成vpn用户拥有两套用户及密码,管理起来很不方便.再说说我的环境,我的环境是把vpn服务器放在了windows azure上,这样算来也是托管类型的,但是windows azure毕竟是微软出的,AD也是微软的,在设计上肯定考虑了,最终呢托管到window

AD 域服务简介(二)- Java 获取 AD 域用户

博客地址:http://www.moonxy.com 一.前言 先简单简单回顾上一篇博文中关于 AD 域和 LDAP目录访问协议的基本概念. AD(Active Directory)活动目录,动态的建立整个域模式网络中的对象的数据库或索引,使用的协议为 LDAP,安装了AD 的服务器称为 DC 域控制器,存储整个域的对象的信息并周期性更新,其中的对象分为三大类:资源(如印表机).服务(如电子邮件).和用户(即帐户或用户,以及组). 通常大家都会将 LDAP 与关系数据库相比,认为 LDAP 是另

AD 域服务简介(三)- Java 对 AD 域用户的增删改查操作

博客地址:http://www.moonxy.com 关于AD 域服务器搭建及其使用,请参阅:AD 域服务简介(一) - 基于 LDAP 的 AD 域服务器搭建及其使用 Java 获取 AD 域用户,请参阅:AD 域服务简介(二)- Java 获取 AD 域用户 一.前言 在日常的开发中,为了实现单点登录,需要对域用户进行增删改查操作,以维持最新的用户信息,确保系统的安全. 二.Java 对 AD 域用户的增删改查操作 package com.moonxy.ad; import java.uti