一、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的主要内容,具体包括dSPACE软件概述、安装环境要求、安装步骤、产品安装过程、结束安装以及Matlab关联等方面的知识。 首先,我们提到的dSPACE软件是由德斯拜思机电...
dSPACE与MATLAB的集成是实现这一目标的关键步骤之一。 1. **链接dSPACE和MATLAB** - 安装完成后,dSPACE通常会自动检测并连接到计算机上已有的MATLAB版本。 - 如果存在多个MATLAB版本,可以通过**DSPACE ...
本内容介绍了Dspace相关概念,对RCP/HILS/RTI相关内容进行详细介绍,帮助对Dspace有深入的认识,并对基于Dspace搭建流程和方法做了详细阐述,使仿真开发人员对DsPace仿真框架设计能够详细了解使用了具体案例展示了 ...
1. DSPACE安装概述: DSPACE软件是一套用于实时计算和模拟的工具,常被用于控制系统的开发和测试。其安装过程可能较为复杂,涉及多个步骤,包括操作系统环境准备、MATLAB版本检查、编译器安装以及DSPACE软件本身的...
二、Solr集成 1. **安装Solr**:DSpace支持Solr进行全文检索,你需要在服务器上安装Apache Solr。下载并解压Solr,然后启动Solr服务器。 2. **配置Solr核心**:DSpace默认集成了Solr,但可能需要根据你的需求进行...
#### 二、DSpace功能与结构 **2.1 数据模型** DSpace的数据模型设计精妙,支持多层级的存储结构,包括社区、集合、项目等多个层次,能够灵活管理各种类型的数字资产,如论文、报告、数据集等。这种模型确保了资源...
DSpace 是一个开源的数字保存和检索系统,广泛用于学术机构和图书馆,用于管理和发布电子学术文献、研究成果和数据。本学习资料主要围绕 DSpace 的使用手册展开,旨在帮助用户更好地理解和操作 DSpace 平台。 ...
- **快速原型设计**:快速原型设计是DSpace的重要特性之一,它允许开发者快速验证控制策略的有效性,加快迭代速度。 - **生产代码生成**:通过TargetLink等工具,DSpace可以从Simulink®/Stateflow®等模型自动生成...
#### 二、主要特性 1. **全面的 I/O 接口**:MicroAutoBox II 配备了丰富的输入/输出接口,包括 CAN、LIN、K/L 线、FlexRay、以太网以及 LVDS 和旁路接口。这些接口使得该系统能够无缝集成到现代汽车的各种通信网络...
dspace的数据模型是其核心架构之一,它设计为高度灵活,能够适应不同类型和结构的数字资源。每个资源在系统中被定义为“项”(Items),项可以属于多个“集合”(Collections),而集合则归属于更大的“社区”...
【dSPACE DS1103】是嵌入式控制系统开发中的一个重要工具,它是一款高性能的实时仿真和控制硬件。dSPACE系统广泛应用于汽车工程、航空航天、自动化以及其他领域,为工程师们提供了一个强大的平台来测试和验证复杂的...
【dSPACE培训教程入门】是针对初学者的指导材料,主要介绍了如何使用dSPACE系统进行开发流程。dSPACE是一款在汽车、航空航天和其他工程领域广泛使用的实时仿真和原型系统。本教程涉及的内容包括从功能设计、快速原型...
本文件中提及的"快速原型案例集锦"主要围绕着dSPACE快速控制原型(Rapid Control Prototyping,简称RCP)系统的应用案例,这些案例覆盖了多个行业领域,包括但不限于汽车行业、航空航天、机械工程、电力电子和医疗...
#### 二、DSpace系统文档:功能概述 ##### 2.1 数据模型 DSpace 的核心是其强大的 **数据模型** ,能够支持各种类型的数字对象(如电子出版物、图像、音频和视频文件)。这些对象被组织在 **社区** 和 **集合** 中...
### 二、DS2211 HIL I/O Board 功能概述 由于提供的部分内容较为简略,关于DS2211 HIL I/O Board的具体功能细节并未详述。不过,通常这类硬件设备会具备以下几方面的功能特点: - **高精度模拟输入/输出接口**:支持...
### 二、TargetLink建模指南概述 #### 1. 建模准则与最佳实践 - **建模规范**:提供了详细的建模指导原则,确保模型能够高效地转换成目标代码。 - **代码优化策略**:介绍如何通过特定的设计模式和建模技术来提高...
从给定的文件信息来看,主要内容聚焦于dSPACE公司及其在2004年第二期新闻通讯中报道的最新动态,涉及产品更新、客户案例、以及行业内的项目合作。以下是对该文件中提及的关键知识点的详细解读: ### dSPACE公司简介...
dSPACE培训教程入门,控制系统半实物仿真的最好工具学习资料