OpenLDAP +Tomcat 集成
前面的步骤:
基本可以看这些文章:
http://www.blogjava.net/Unmi/archive/2008/01/03/172031.html#resources
http://llpei.javaeye.com/blog/116609
配置文件server.xml:
<Realm className="org.apache.catalina.realm.JNDIRealm" debug="99" connectionName="cn=Manager,o=ou,cn=wellsoon,cn=resources"
connectionPassword="123456"
connectionURL="ldap://192.168.1.113:389"
userPattern="cn={0},o=bepc,o=dep,o=ou,cn=xx,cn=resources"
userPassword="userPassword"
userRoleName="permid"
/>
我本来是以上2篇文章中的配置来的,但登录tomcat时总是拒绝访问,很郁闷。最后改为使用userRoleName 就可以登录(目前测试为permid 为权限属性代码,只有一个值)。
这个我的LDAP结构:
人员的结构ldif:
dn: cn=qixx,o=bepc,o=dep,o=ou,cn=xx,cn=resources
objectClass: ePerson
cn: qixx
description: qixx
displayname: 祁xx
userpassword: 123456
permid: login
departmentnumber:ou=ou1,o=dep,o=ou,cn=xx,cn=resources
其中cn表示用户的登录名。
ePerson是自己定义的
permid 表示用户权限
这些属性可以对应为上面的xml配置
如果想测试,可以使用tomcat测试。
1. 在 %TOMCAT_HOME% conf/ tomcat-users.xml 中增加角色(貌似不是必须~不了解)
<role rolename="login"/>
2. 修改%TOMCAT_HOME% webapps/manager/WEB-INF 的web.xml
增加了角色名为:login 正好和我的ldap中permid的值对应上
3. 然后登录http://localhost:8080/ 输入用户名:qixx 密码:123456 登录成功
登录成功。
下一步需要测试一个用户多个权限,看看要如何登录。
阅读全文