Seam与OpenLDAP的集成(一)

本文介绍了如何在JBoss Seam 2.1.0中利用权限管理特性与OpenLDAP集成,实现用户认证与授权。文章详细说明了OpenLDAP的安装与配置流程,包括配置文件的修改、核心模式的调整等步骤。

原文地址:http://shane.bryzak.com/blog/articles/integrating_seam_and_openldap

图片可以见:http://hi.baidu.com/stenlylee/blog/item/6901aec3b3fb9053b219a86d.html

简介

JBoss Seam 2.1.0中的一个新特性就是权限管理——Seam应用程序提供的用于管理用户与角色的标准接口。这套接口能让你在你的Seam程序界面中调用后台存储的权限(安全)设置。 无论你将用户数据存储在数据库中还是LDAP路径下,Seam都支持直接调用验证。 这篇文章主要关注LDAP方式:介绍OpenLDAP的安装和配置,以及进一步描述通过什么样的配置,就能让Seam程序访问指定的路径。

先决条件

你需要先准备好:

1、Java 1.5 JDK或更高版本
2、一个应用程序服务器,例如JBoss AS(如何安装不再本文讨论范围内)
3、Apache Ant

这里我们用来讨论的内容将通过seamspace示例来展现。这个例子已经被包含在了seam的examples文件夹下。它支持多用户角色,并且用户可以通过权限管理页面来管理它们。这些内容都很好地展示了如何与OpenLDAP集成。

在写这篇文章的同时,OpenLDAP的最新版本为2.4.11,可以到http://www.openldap.org下载。我们将会用OpenLDAP的源代码来创建OpenLDAP,所以我假设你们已经可以运行一些*nix特性。如果你使用的是windows,你可以试试Cygwin,从这里下载:http://www.cygwin.com(实际上,这篇文章就是用Cygwin写的)

*Cygwin,在windows下面模拟linux环境的程序,译者注

安装OpenLDAP

现在我们赶快开始吧。第一步要做的就是,解压缩源代码压缩包(输入命令:tar zxvf openldap-2.4.11.tgz),然后移动到建好的文件夹中。它应该包含下面这些东西:

创建过程将持续一小会,这中间包含了很多步骤。首先,我们需要运行配置脚本——默认情况下OpenLDAP会安装在/usr/local目录下。我们这里建议就使用默认的路径。在OpenLDAP的源代码目录下执行'./configure'来开始配置脚本:

之后,就应该全部完成了:

下一步运行'make depend':

这样我们就全部完成了:

下一步,运行'make':

最后,运行'make install':

最后一步,安装所有的OpenLDAP文件到正确的路径下面。然后,我们可以到/usr/local路径下面查看我们刚刚安装的:

当我们开始OpenLDAP服务之前,我们需要更改一些配置。首先我们需要编辑OpenLDAP配置文件,它存储在/usr/local/etc/openldap路径下面:

使用你最常用的文本编辑器打开slapd.conf,然后项下滚动到文件的底部。最后一个选项包含了一些参数我们需要针对实际环境去修改。最前面两个,suffix和rootdn要改成你的目录服务所运行的domain。例如,我将domain改成了'dc=bryzak,dc=com'。'dc'在这里表示'Domain Component'。

rootdn设置包含了根用户名称(DN),该用户能够读写该路径下的所有东西。你可以通过修改rootpw参数来修改根用户的密码(默认为secret)。

当我们保存修改过的配置文件后,我们需要对LDAP的schema做一些修改。这个步骤可能会产生一些不太好的效果,但是这些修改都非常简单。这里需要修改两个部分,首先是添加一个role属性到你的Person对象中,这样才能让权限管理接口知道用户是属于哪个角色的。然后我们需要给Person对象添加一个enabled属性,这样才能对用户是否有效进行控制。实际上,enabled是可选的,我们的例子里面会用到它。

我们通过修改/usr/local/etc/openldap/schema/core.schema文件来修改核心的schema。(你可能需要先运行'chmod 644 core.schema'来设置这个文件为可读写

翻到最后,找到attributetype实体,然后创建两个新的实体,roles和enabled。然后你会看到如下部分:

attributetype ( 2.5.4.66 NAME 'roles'
DESC 'role memberships of a person'
SUP name )

attributetype ( 2.5.4.67 NAME 'enabled'
DESC 'enabled flag for a person'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 )

SYNTAX后面跟着的这一长串数字看起来让人恐怖,但它仅仅是boolean类型的标准LDAP类型。如果你对其他LDAP属性感兴趣,你可以参考RFC2252 (http://tools.ietf.org/html/rfc2252),我保证它看起来会非常有趣。

最后,修改过的文件看起来会是这样:

接下来,翻到下面,找到'person'的'objectclass'。然后你需要添加'roles'和'enabled'属性到其MAY属性的列表中:

保存后,在/usr/local/libexec目录下输入slapd,启动OpenLDAP服务。

slapd服务在后台自动运行。我们可以输入ps命令来确认它是否正常运行:

当我们使用我们自己的路径之前,我们需要建立几个实体。再次打开你的编辑器,在你的home路径下新建一些叫做entries.ldif的文件文件,文件内容包括:

dn: dc=bryzak,dc=com
objectClass: dcObject
objectClass: organization
dc: bryzak
o: Example
description: Example

dn: cn=Manager,dc=bryzak,dc=com
objectClass:organizationalRole
cn: Manager
description: Directory Manager

确保你的dc值对应你自己的domain。保存文件,然后我们可以使用ldapadd来添加实体。执行 '/usr/local/bin/ldapadd -D cn=Manager,dc=bryzak,dc=com -w secret -f entries.ldif' (将绑定的dn和密码改成你自己的)然后实体就被添加进去了

下载方式:https://renmaiwang.cn/s/t0445 在时序发生器设计实验中,如何达成T4至T1的生成? 时序发生器的构建可以通过运用个4位循环移位寄存器来达成T4至T1的输出。 具体而言:- **CLR(清除)**: 作为全局清零信号,当CLR呈现低电平状态时,所有输出(涵盖T1至T4)皆会被清除。 - **STOP**: 在T4脉冲的下降沿时刻,若STOP信号处于低电平状态,则T1至T4会被重置。 - **启动流程**: 当启动信号START处于高电平,并且STOP为高电平时,移位寄存器将在每个时钟的上升沿向左移动位。 移位寄存器的输出端对应了T4、T3、T2、T1。 #### 2. 时序发生器如何调控T1至T4的波形形态? 时序发生器通过以下几个信号调控T1至T4的波形形态:- **CLR**: 当CLR处于低电平状态时,所有输出均会被清零。 - **STOP**: 若STOP信号为低电平,且在T4脉冲的下降沿时刻,所有输出同样会被清零。 - **START**: 在START信号有效(通常为高电平),并且STOP为高电平时,移位寄存器启动,从而产生环形脉冲输出。 ### 微程序控制器实验#### 3. 微程序控制器实验中的四条机器指令及其对应的微程序段指定的机器指令及其关联的微程序段如下:- **NOP**: 00- **R0->B**: 04- **A+B->R0**: 05- **P<1>**: 30- **IN->R0**: 32- **R0->OUT**: 33- **HLT**: 35#### 4. 微程序段中的微操作/微命令序列针对每条微指令,其对应的微操作或微命令序列如下:- **IN->R0**: 输入(IN)单元的数据被...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值