`
commando
  • 浏览: 78239 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Dspace1.5 之 Ldap(二)

阅读更多

 

一、Dspace 登录主要用到的3个类

 

    LDAPServlet.java                          (package org.dspace.app.webui.servlet)

    AuthenticationManager.java        (package org.dspace.authenticate)

    LDAPAuthentication.java              (package org.dspace.authenticate)

   

 

二、Dspace.cfg 配置

 

    每项具体的含义,文件中的注释写的非常清楚。

 

ldap.enable = true

ldap.provider_url = ldap://127.0.0.1/dc=informationDepartment,dc=wti.ac.cn

ldap.id_field = uid

ldap.object_context = ou=people,dc=informationDepartment,dc=wti.ac.cn

ldap.search_context = ou=people

ldap.email_field = mail

ldap.surname_field = sn

ldap.givenname_field = givenName

ldap.phone_field = telephoneNumber

webui.ldap.autoregister = true

 

 

三、Ldap认证过程

 

    1.  当 ldap.enable = true 设定后,需要验证时会弹出 chooser.jsp 页面。

 

 

    2.  选择第二项通过LDAP验证登录,会显示 webapp/components/ldap-form.jsp 页面。

 

 

 

 

 3.  输入代号(Ldap的用户名)如 “sspecial” 、密码为 “password”。点击“登入”按钮,会触发LdapServlet,核心代码如下。

 

    1)  首次登录:

 

// 如果数据库中不存在此用户,就通过Ldap进行认证,认证通过后创建对应的EPerson

            if (ldapAuthenticate(netid, password, context, ldapResult))
            {
                //自动注册配置属性为true时
                if (ConfigurationManager.getBooleanProperty("webui.ldap.autoregister"))  
                {
                    // 自动注册新用户
                    ......
                }
 
                else
                {
                    // 跳转到注册失败页面
                    ......
                }
            }

         

 

 

    2)  登录验证:

 

protected boolean ldapAuthenticate(String netid, String password, Context context, LDAPResult ldapResult)
{
  //--------- 开始Ldap认证-------------
  if (!password.equals("")) 
  {
    String ldap_provider_url = ConfigurationManager.getProperty("ldap.provider_url");
    String ldap_id_field = ConfigurationManager.getProperty("ldap.id_field");
    String ldap_search_context = ConfigurationManager.getProperty("ldap.search_context");
    String ldap_object_context = ConfigurationManager.getProperty("ldap.object_context");

    // Set up environment for creating initial context
    Hashtable env = new Hashtable(11);
    env.put(javax.naming.Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
    env.put(javax.naming.Context.PROVIDER_URL, ldap_provider_url);

    // Authenticate 
    env.put(javax.naming.Context.SECURITY_AUTHENTICATION, "simple");
    env.put(javax.naming.Context.SECURITY_PRINCIPAL, ldap_id_field+"="+netid+","+ldap_object_context);
    env.put(javax.naming.Context.SECURITY_CREDENTIALS, password);
            
    try 
    {
     // Create initial context
     DirContext ctx = new InitialDirContext(env); //如果netid或password不对,此处会抛出异常。
   ......

 

 

    3)  验证通过后获取相关属性

 

Attributes matchAttrs = new BasicAttributes(true);
matchAttrs.put(new BasicAttribute(ldap_id_field, netid)); //查找项

String attlist[] = {ldap_email_field, ldap_givenname_field, ldap_surname_field, ldap_phone_field}; // 要获取的属性

// look up attributes
try 
   {
     NamingEnumeration answer = ctx.search(ldap_search_context, matchAttrs, attlist);
      while(answer.hasMore()) {...... //获取相关属性的处理}
  }

 

 

    4)  登录成功:

    在系统的左上角可以看到登录成功状态的人员信息。

 

 

 

 

  • 大小: 3.6 KB
  • 大小: 9.2 KB
  • 大小: 11.8 KB
分享到:
评论

相关推荐

    dSPACE软件安装教程V3.pdf

    在本文档中,我们将详细讲解dSPACE软件安装教程V3的主要内容,具体包括dSPACE软件概述、安装环境要求、安装步骤、产品安装过程、结束安装以及Matlab关联等方面的知识。 首先,我们提到的dSPACE软件是由德斯拜思机电...

    基于dSPACE的硬件在环操作流程

    dSPACE与MATLAB的集成是实现这一目标的关键步骤之一。 1. **链接dSPACE和MATLAB** - 安装完成后,dSPACE通常会自动检测并连接到计算机上已有的MATLAB版本。 - 如果存在多个MATLAB版本,可以通过**DSPACE ...

    基于Dspace的CAN通信

    本内容介绍了Dspace相关概念,对RCP/HILS/RTI相关内容进行详细介绍,帮助对Dspace有深入的认识,并对基于Dspace搭建流程和方法做了详细阐述,使仿真开发人员对DsPace仿真框架设计能够详细了解使用了具体案例展示了 ...

    dspace安装流程

    1. DSPACE安装概述: DSPACE软件是一套用于实时计算和模拟的工具,常被用于控制系统的开发和测试。其安装过程可能较为复杂,涉及多个步骤,包括操作系统环境准备、MATLAB版本检查、编译器安装以及DSPACE软件本身的...

    dspace部署

    二、Solr集成 1. **安装Solr**:DSpace支持Solr进行全文检索,你需要在服务器上安装Apache Solr。下载并解压Solr,然后启动Solr服务器。 2. **配置Solr核心**:DSpace默认集成了Solr,但可能需要根据你的需求进行...

    dspace1.5.2 使用手册

    #### 二、DSpace功能与结构 **2.1 数据模型** DSpace的数据模型设计精妙,支持多层级的存储结构,包括社区、集合、项目等多个层次,能够灵活管理各种类型的数字资产,如论文、报告、数据集等。这种模型确保了资源...

    DSpace-Manual学习资料

    DSpace 是一个开源的数字保存和检索系统,广泛用于学术机构和图书馆,用于管理和发布电子学术文献、研究成果和数据。本学习资料主要围绕 DSpace 的使用手册展开,旨在帮助用户更好地理解和操作 DSpace 平台。 ...

    学习dspace的好资料

    - **快速原型设计**:快速原型设计是DSpace的重要特性之一,它允许开发者快速验证控制策略的有效性,加快迭代速度。 - **生产代码生成**:通过TargetLink等工具,DSpace可以从Simulink®/Stateflow®等模型自动生成...

    dSPACE MicroAutoBoxII的介绍

    #### 二、主要特性 1. **全面的 I/O 接口**:MicroAutoBox II 配备了丰富的输入/输出接口,包括 CAN、LIN、K/L 线、FlexRay、以太网以及 LVDS 和旁路接口。这些接口使得该系统能够无缝集成到现代汽车的各种通信网络...

    dspace1.6.0 使用手册

    dspace的数据模型是其核心架构之一,它设计为高度灵活,能够适应不同类型和结构的数字资源。每个资源在系统中被定义为“项”(Items),项可以属于多个“集合”(Collections),而集合则归属于更大的“社区”...

    dSPACE DS1103

    【dSPACE DS1103】是嵌入式控制系统开发中的一个重要工具,它是一款高性能的实时仿真和控制硬件。dSPACE系统广泛应用于汽车工程、航空航天、自动化以及其他领域,为工程师们提供了一个强大的平台来测试和验证复杂的...

    dSPACE培训教程入门.ppt

    【dSPACE培训教程入门】是针对初学者的指导材料,主要介绍了如何使用dSPACE系统进行开发流程。dSPACE是一款在汽车、航空航天和其他工程领域广泛使用的实时仿真和原型系统。本教程涉及的内容包括从功能设计、快速原型...

    DSPACE RCP 快速原型案例集锦

    本文件中提及的"快速原型案例集锦"主要围绕着dSPACE快速控制原型(Rapid Control Prototyping,简称RCP)系统的应用案例,这些案例覆盖了多个行业领域,包括但不限于汽车行业、航空航天、机械工程、电力电子和医疗...

    Dspace 1.6.1 Manual(English)

    #### 二、DSpace系统文档:功能概述 ##### 2.1 数据模型 DSpace 的核心是其强大的 **数据模型** ,能够支持各种类型的数字对象(如电子出版物、图像、音频和视频文件)。这些对象被组织在 **社区** 和 **集合** 中...

    Dspace DS2211Features

    ### 二、DS2211 HIL I/O Board 功能概述 由于提供的部分内容较为简略,关于DS2211 HIL I/O Board的具体功能细节并未详述。不过,通常这类硬件设备会具备以下几方面的功能特点: - **高精度模拟输入/输出接口**:支持...

    dSPACE TargetLink建模手册及高级建模

    ### 二、TargetLink建模指南概述 #### 1. 建模准则与最佳实践 - **建模规范**:提供了详细的建模指导原则,确保模型能够高效地转换成目标代码。 - **代码优化策略**:介绍如何通过特定的设计模式和建模技术来提高...

    dspace-news_2-2004_en.pdf

    从给定的文件信息来看,主要内容聚焦于dSPACE公司及其在2004年第二期新闻通讯中报道的最新动态,涉及产品更新、客户案例、以及行业内的项目合作。以下是对该文件中提及的关键知识点的详细解读: ### dSPACE公司简介...

    dSPACE.rar_dSPACE_pdf Dspace matlab_半实物仿真

    dSPACE培训教程入门,控制系统半实物仿真的最好工具学习资料

Global site tag (gtag.js) - Google Analytics