JAVA windows 域认证指南

实现方法:

import java.util.Hashtable;

import javax.naming.Context;

import javax.naming.NamingEnumeration;

import javax.naming.ldap.InitialLdapContext;

import javax.naming.ldap.LdapContext;

public class LdapAuth {

private String domain;

private String ldapHost;

private String searchBase;

public LdapAuth(){

this.domain = "{域}";

this.ldapHost = "ldap://{IP}:{端口}";

this.searchBase = "DC={DC},DC={DC}";

}

public LdapAuth(String domain,String host,String dn){

this.domain = domain;

this.ldapHost = host;

this.searchBase = dn;

}

public boolean authLdap(String username,String pass){

String searchFilter = "(&(objectClass=user)(sAMAccountName=" + username + "))";

Hashtable env = new Hashtable();

env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");

env.put(Context.PROVIDER_URL, ldapHost);

env.put(Context.SECURITY_AUTHENTICATION, "simple");

env.put(Context.SECURITY_PRINCIPAL, username + "@" + domain);

env.put(Context.SECURITY_CREDENTIALS, pass);

LdapContext ctxGC = null;

boolean ldapUser = false;

try {

ctxGC = new InitialLdapContext(env,null);

NamingEnumeration answer = ctxGC.search(searchBase, searchFilter,null);

if (answer!=null) {

ldapUser = true;

}

} catch (Exception e) {

// TODO: handle exception

}

return ldapUser;

}

测试:

用户名密码正确:

用户名密码错误:

时间: 2024-10-22 09:39:07

JAVA windows 域认证指南的相关文章

C#开发中Windows域认证登录2016(扩展吉日嘎拉GPM系统V4.2)

2013年搞公司的OA时,为了统一用户登录,将Windows AD的用户和OA的账号对接,OA用户名的规则就是使用Windows AD的用户名,格式举例:Troy.Cui,原理就是先进行域服务器的认证,认证完毕使用自定义的函数根据用户名读取出OA的用户信息,然后读取出用户名和密码信息,最后使用获取到的用户名和密码进行正常的登录.当时的文章:<C#开发中Windows域认证登录2(扩展吉日嘎拉GPM系统)>,本周打算OA中开发在线培训的功能,也想借此机会升级一下底层的应用DotNet.Busin

SVN分级授权部署手册 --Windows用户认证

http://wenku.baidu.com/view/a0a16ea34028915f804dc2f8.html 第一章 概述 当VisualSVN 2.7采用Windows用户认证或Windows域认证时,可以使用SVN分级授权工具对VisualSVN的授权功能进行扩展,实现SVN库的创建.分库的分级授权.SVN用户密码修改等.本手册主要描述Windows用户认证的配置方法,关于采用Windows域认证的配置方法请参考<SVN分级授权工具部署手册--Windows域认证>. 第二章 安装部

IIS 登录失败 该登陆名来自不受信任的域,不能与windows身份认证一起使用

原文:https://blog.csdn.net/hhw199112/article/details/80234462 错误: 登录失败 该登陆名来自不受信任的域,不能与windows身份认证一起使用 解决: 数据库连接字符串改为:integrated security=false 原因: integrated security=true表示可以在不知道数据库用户名和密码的情况下时,依然可以连接数据库, 如果integrated security=false,或者不写,表示一定要输入正确的数据库

细说ASP.NET Windows身份认证

上篇博客我谈到了一些关于ASP.NET Forms身份认证方面的话题,这次的博客将主要介绍ASP.NET Windows身份认证. Forms身份认证虽然使用广泛,不过,如果是在 Windows Active Directory 的环境中使用ASP.NET, 那么使用Windows身份认证也会比较方便. 方便性表现为:我们不用再设计登录页面,不用编写登录验证逻辑.而且使用Windows身份认证会有更好的安全保障. 回到顶部 认识ASP.NET Windows身份认证 要使用Windows身份认证

IIS Windows身份认证提示输入账号密码

我查了下Windows身份认证提示输入账号密码的根本原因 首先明确一点, 基本身份认证和Windows身份认证是IIS的两种认证方式,在添加角色服务的时候,可以只添加一种或者两个都添加,两者之间没有相互合作的关系 两者的使用背景不同 基本身份认证:使用的是能够登陆服务器的Windows账号(可以是域账号或本地账号),密码传递不安全,通常与SSL连用 Windows身份认证:使用的是域账号,不需要传递密码,但仅限于同一个域内使用 https://msdn.microsoft.com/en-us/l

Windows集成认证全过程

开发环境:win7旗舰版,vs2013 服务器环境:windows server 2008 R2 IIS7.5 目的:在局域网搭建一个网站,用户必须使用域帐号登录网站访问 Step 1: 创建project ,选择MVC,修改Authentication为WindowsAuthentication Step2: 修改项目属性,Annymous Authentication为Disabled,WindowsAuthentication 为Enabled Step3: 修改Web.config, <

将samba加入到windows域《转载》

将samba加入到windows域 那什么是域呢? 一台Windows计算机,它要么隶属于工作组,要么隶属于域.所以说到域,我们就不得不提一下工作组,工作组是MS的概念,一般的普遍称谓是对等网. 工作组(Work Group)就是将不同的电脑按功能分别列入不同的组中,以方便管理.比如在一个网络内,可能有成百上千台工作电脑,如果这些电脑不进行分组,都列在“网上邻居”内,可想而知会有多么乱. 与工作组有所不同,域(domain)是一个相对严格的组织,至少需要一台安装了windwos NT/2000/

一份包含本地数据库验证,Windows域验证,单点登录的Spring Security配置文件

没有任何注释,表怪我(¬_¬) 在本地用户验证,Windows域验证,公司单点登录服务器测试通过 <?xml version="1.0" encoding="UTF-8"?> <beans:beans xmlns="http://www.springframework.org/schema/security" xmlns:beans="http://www.springframework.org/schema/bean

windows域控制器根域名设置

windows域控制器根域名到底设置成什么,一般人可能根本不会细想,可对强迫症患者来说这事必须想明白才能动手. 这个是纠结我好久的问题,纠结点有两个: 一.是否需要设置一个真实存在的域名? 二.DNS是指向学校的DNS,还是用windows搭建的DNS服务? 今天仔细想了一下突然开窍了. 按照微软的说法,一个公司的网络中PC的数量低于10台建议采用工作组模式,超过10台建议采用域的管理模式. 第一.这个网络可能就是一个专网.私网,根本就没有DNS解析服务器,所以这个域名也就不需要是真实的. 第二