当前位置: 首页 > news >正文

网站建设模整站优化的公司

网站建设模,整站优化的公司,网站空间大小,wordpress的android应用文章目录 一、概述#xff1a;1、简介2、LDAP目录2.1 基于国家的目录排列2.2 基于域名的排列 3、为什么使用LDAP 二、Java连接代码1、连接代码2、LDAP登录的三种方式 三、客户端下载四、参考地址五、官方地址1、LDAP地址#xff1a;2、LDAP Account Manager 地址#xff1a;… 文章目录 一、概述1、简介2、LDAP目录2.1 基于国家的目录排列2.2 基于域名的排列 3、为什么使用LDAP 二、Java连接代码1、连接代码2、LDAP登录的三种方式 三、客户端下载四、参考地址五、官方地址1、LDAP地址2、LDAP Account Manager 地址 一、概述 1、简介 LDAP(Lightweight Directory Access Protocol) LDAP代表轻型目录访问协议(Lightweight Directory Access Protocol)。顾名思义它是用于访问目录服务的轻量级协议特别是基于X.500协议的目录服务。LDAP运行于TCP/IP连接上或其他面向传输服务的连接上。LDAP是IETF标准跟踪协议并且在“Lightweight Directory Access Protocol (LDAP) Technical Specification Road Map” RFC4510中进行了指定。 目录是专门为搜索和浏览而设计的专用数据库支持基本的查找和更新功能。 ​ 提供目录服务的方式有很多。不同的方法允许将不同类型的信息存储在目录中对如何引用查询和更新该信息如何防止未经授权的访问等提出不同的要求(这些由LDAP定义)。一些目录服务是本地的提供本地服务一些目录服务是全球性的向更广泛的环境例如整个Internet提供服务。全局服务通常是分布式的这意味着它们包含的数据分布在许多机器上所有这些机器协作以提供目录服务。通常全局服务定义统一的名称空间无论在何处访问都可以提供相同的数据视图。 2、LDAP目录 2.1 基于国家的目录排列 在LDAP中目录条目以树状分层结构排列。传统上此结构反映了地理和组织边界。代表国家的条目显示在树的顶部。它们下面是代表省和国家机构的条目。再下一层可能是代表组织单位人员打印机文档或您想到的几乎所有其他内容的条目。 2.2 基于域名的排列 该树还可以基于网络域名进行排列。这种命名方法变得越来越流行因为它允许使用DNS定位目录服务。 基于域名的LDAP目录树示例 3、为什么使用LDAP 随着公司内部各种开源平台越来越多(例如gitlab、Jenkins、Yapi等等)账号维护变成一个繁琐麻烦的事情急需有一个统一的账号维护平台一个人只需一个账号在公司内部平台通用而大多数开源平台都支持LDAP;因此只要搭建好LDAP服务并跟钉钉之类的平台实现账号同步即可实现统一账号管理 二、Java连接代码 1、连接代码 现在可以从Java程序访问LDAP。 向您展示如何执行此操作的最佳方法是通过示例程序。 该程序将执行以下任务 创建一个新的LDAP对象查看LDAP对象将新属性添加到LDAP对象修改LDAP对象上的属性删除LDAP对象上的属性删除LDAP对象 package test;import java.util.Properties; import javax.naming.Context; import javax.naming.NamingException; import javax.naming.directory.*;public class LDAPTest {public void run() {try {DirContext context getContext();String name employeeNumber00001,ousystem;createLDAPObject(context, name);createAttribute(context, name, displayName, JOBS);viewAttribute(context, name, displayName);updateAttribute(context, name, displayName, STEVE);viewAttribute(context, name, displayName);removeAttribute(context, name, displayName);removeLDAPObject(context, name);} catch (NamingException e) {e.printStackTrace();}}private void removeLDAPObject(DirContext context, String name) throws NamingException {context.destroySubcontext(name);}private void createLDAPObject(DirContext context, String name) throws NamingException {Attributes attributes new BasicAttributes();Attribute attribute new BasicAttribute(objectClass);attribute.add(inetOrgPerson);attributes.put(attribute);Attribute sn new BasicAttribute(sn);sn.add(Steve);attributes.put(sn);Attribute cn new BasicAttribute(cn);cn.add(Jobs);attributes.put(cn);attributes.put(telephoneNumber, 123456);context.createSubcontext(name, attributes);}private void removeAttribute(DirContext context, String name, String attrName) throws NamingException {Attribute attribute new BasicAttribute(attrName);ModificationItem[] item new ModificationItem[1];item[0] new ModificationItem(DirContext.REMOVE_ATTRIBUTE, attribute);context.modifyAttributes(name, item);}private void createAttribute(DirContext context, String name, String attrName, Object attrValue) throws NamingException {Attribute attribute new BasicAttribute(attrName, attrValue);ModificationItem[] item new ModificationItem[1];item[0] new ModificationItem(DirContext.ADD_ATTRIBUTE, attribute);context.modifyAttributes(name, item);}private void updateAttribute(DirContext context, String name, String attrName, Object attrValue) throws NamingException {Attribute attribute new BasicAttribute(attrName, attrValue);ModificationItem[] item new ModificationItem[1];item[0] new ModificationItem(DirContext.REPLACE_ATTRIBUTE, attribute);context.modifyAttributes(name, item);}private void viewAttribute(DirContext context, String name, String attrName) throws NamingException {Attributes attrs context.getAttributes(name);System.out.println(attrName : attrs.get(attrName).get());}private DirContext getContext() throws NamingException {Properties properties new Properties();properties.put(Context.INITIAL_CONTEXT_FACTORY,com.sun.jndi.ldap.LdapCtxFactory);properties.put(Context.PROVIDER_URL, ldap://localhost:10389);return new InitialDirContext(properties);}public static void main(String[] args) {new LDAPTest().run();} }2、LDAP登录的三种方式 搜索中关于java 登录ldap大部分会采用 cnxxx,ouxxx,dcxxx的方式此处的cn是用户的Display Name而不是account而且如果ou有多层比如我们的OU就会超过三层。 那最好是通过用户的account直接登录 package com.lydms.demospringtransaction.controller;//package test;import javax.naming.AuthenticationException; import javax.naming.CommunicationException; import javax.naming.Context; import javax.naming.ldap.InitialLdapContext; import javax.naming.ldap.LdapContext; import java.util.Hashtable;public class LDAPTest {/*** 获取默认LDAP连接 * Exception 则登录失败ctx不为空则登录成功* return void*/public static LdapContext getLDAPConnection() throws AuthenticationException, CommunicationException,Exception {LdapContext ctx null;//LDAP 连接地址 ldap://IP:PORT (default port 389)String LDAP_URL ;//LDAP SSL连接地址 ldaps://IP:PORT (default port 636)//(这个用起来比较麻烦目前知道管理员改密码必须使用SSL)String LDAP_SSL_URL ;//用户名String userAccount ;//管理员密码String userPassword ;// 方式1 // 基于姓名cn,此cn为Display Name,部门有同名就麻烦了userAccount cnxxx,OUxxx,DCxxx,DCcom;// 方式2 // 基于Account User Logon name: // userAccount xxxdomain.xxx;// 方式3 // 基于Account User Logon name(pre-windows 2000): // userAccount domain\\xxx// 基于登录名uid User ID与 unix 的 uid 完全不同请注意objectSID,此处尝试失败 // uidabc123, ouxxxx, dcxxxx, dccomuserPassword xxxxx;HashtableString,String HashEnv new HashtableString,String();HashEnv.put(Context.SECURITY_AUTHENTICATION, simple); // LDAP访问安全级别(none,simple,strong)HashEnv.put(Context.SECURITY_PRINCIPAL, userAccount); //AD的用户名HashEnv.put(Context.SECURITY_CREDENTIALS, userPassword); //AD的密码HashEnv.put(Context.INITIAL_CONTEXT_FACTORY,com.sun.jndi.ldap.LdapCtxFactory); // LDAP工厂类HashEnv.put(com.sun.jndi.ldap.connect.timeout, 3000);//连接超时设置为3秒HashEnv.put(Context.PROVIDER_URL, LDAP_URL);ctx new InitialLdapContext(HashEnv, null);//new InitialDirContext(HashEnv);// 初始化上下文return ctx;} }三、客户端下载 LdapBrowser客户端 https://download.csdn.net/download/weixin_44624117/87780021四、参考地址 1、LDAP介绍及使用 https://blog.csdn.net/suo082407128/article/details/1152944902、Java到LDAP教程包括如何安装LDAP服务器/客户端 https://blog.csdn.net/dnc8371/article/details/1067033253、JAVA中使用LDAP登录的三种方式 https://www.cnblogs.com/huanghongbo/p/12053272.html五、官方地址 1、LDAP地址 OpenLDAP(LDAP开源实现)官方文档库https://www.openldap.org/doc/ LDAP管理员指南https://www.openldap.org/doc/admin24/index.html 非OpenLDAP官方Docker镜像https://github.com/osixia/docker-openldap 2、LDAP Account Manager 地址 OpenLDAP安装完成后用命令操作不方便需要一个可视化管理工具随时访问LDAP Account Manager为web版的管理工具 官网https://www.ldap-account-manager.org/lamcms/ 官网Demo:https://www.ldap-account-manager.org/lam/templates/login.php,密码lam 官方docker镜像https://registry.hub.docker.com/r/ldapaccountmanager/lam
http://www.dnsts.com.cn/news/142654.html

相关文章:

  • 汽车网站哪个好安装wordpress 500 - 内部服务器错误.
  • 网站没备案可以做淘宝客吗wordpress彩虹插件
  • 高价词网站源码站长之家论坛
  • 建商城网站带app多少钱西安网站建设定制
  • 外贸网站外链平台不花钱建网站
  • 营销型网站怎么收费wordpress讯虎
  • 巨野做网站的制作网站的基本步骤
  • 网站开发项目手机网站模板 psd
  • 兰州企业网站排名优化温州专业微网站制作公司
  • 杭州建设信用网官网网站建设优化陕西
  • 东莞网站建设如何做wordpress 2.5
  • 医院网站模板 html网站内容描述
  • 做网站公司上班违法吗各大门户网站有哪些
  • 创建网站大约品牌建设金点子
  • 站长统计幸福宝2022年排行榜网站备案公共查询
  • 需要服务器的网站网站集群建设必要性
  • 西安十强互联网站建设公司台州汇客网站建设
  • 服务专业的网站建站公司免费发布项目的网站
  • 北京网站建设方案品牌公司咸宁网站seo排名
  • 广州建设交易中心网站首页wordpress主题模板 教育
  • 重庆万州网站建设公司电话wordpress主题制作豆丁
  • 做网站什么配置够用网站策划书格式及范文1000字免费
  • 电商网站系统建设wordpress网站流量
  • 广东网站制作公司排名justnews主题wordpress
  • 专业佛山网站建设海口网站建设平台
  • 建设一个招聘网站大概多少费用可以免费进的服务器网站
  • 网站建设 软件开发的公司排名seo与网络推广的区别和联系
  • dedecms网站的源码如何安装十个有趣又好玩的网页
  • 网站做二维码吗网站备案是怎么回事
  • 网站方案制作的培训最新室内设计效果图