AD认证

下面是我的AD认证的解决方案

	// active directory authentication
	private boolean authenticateByAD(ADServerInfo adServer, String username,
			String password) throws DBAccessException {

		boolean result = false;
		Context ctx = null;

		if (adServer != null) {

			Properties props = new Properties();
			props.put(Context.INITIAL_CONTEXT_FACTORY,
					"com.sun.jndi.ldap.LdapCtxFactory");
			props.put(Context.PROVIDER_URL, "ldap://" + adServer.getIpAddr()
					+ ":" + adServer.getPort());
			props.put(Context.SECURITY_AUTHENTICATION, "simple");
			props.put(Context.SECURITY_PRINCIPAL, username
					+ adServer.getDomainName());
			props.put(Context.SECURITY_CREDENTIALS, password);

			try {
				ctx = new InitialLdapContext(props, null);
				result = true;
			} catch (javax.naming.AuthenticationException e) {
				log.info("javax.naming.AuthenticationException");

			} catch (NamingException e) {
				log.info("NamingException");
			}

			if (ctx != null) {
				try {
					ctx.close();
				} catch (NamingException e) {
					// ignore
				}
			}
		}
		return result;
	}

 我们使用的是LADP认证,ADServerInfo是一个保存AD与信息的对象,包括ip,port 和domainname,username是你公司登陆用户名,password使用登陆密码

你可能感兴趣的:(Security,sun)