ibm portal重名问题分析及问题

ibm portal重名问题分析及问题

ID:9492492

大小:61.50 KB

页数:7页

时间:2018-05-01

ibm portal重名问题分析及问题_第1页
ibm portal重名问题分析及问题_第2页
ibm portal重名问题分析及问题_第3页
ibm portal重名问题分析及问题_第4页
ibm portal重名问题分析及问题_第5页
资源描述:

《ibm portal重名问题分析及问题》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、IBMPortal重名问题分析及问题  一、问题的提出  在我的门户环境里门户连接的LDAP(环境用的是MSAD),这个LDAP体系结构由一个根,根下面连结N个子域;除了根域没有连接门户外,一个子域连接一个门户.那么每个门户都能连接到LDAP林.其中有一个门户是核心门户,其它门户都能跟它实现互访.由于登录门户是从林里查找,故输入用户名的时候,要整个林是唯一,否则登录不进去.  二、问题的分析  登录不进门户,后台会报一个有多个用户匹配,不能识别的错.这个原因在于,在配置门户连接时,要设置一个查找用户的过滤器,门户通

2、过它实现输入名字(简称)转换成LDAP的全称来认证用户,而在这个环境中,由于是用到林的认证而非在所直接连接的LDAP认证,故在匹配用户的时候,就会找到多个用户,系统无法知道是那个就报错上述的错出来.比如,输入hello简称,会生成一个如=hello,dc=目录,dc=节点,dc=根名,dc=的一个全称,但是有多个子域存在hello,就会找到全名如=hello,dc=目录,dc=节点1,dc=根名,dc=,=hello,dc=目录,dc=节点2,dc=根名,dc=等等多个全称进行匹配,导致系统不知道要确认那一个,就会

3、抛出错误.  三、解决问题的策略  a.在门户的用户搜索角度(配置上)来看,  1)能否设置门户的m.xml(它能配置搜索策略,在里面有个searchBase的字段说明从哪个目录去搜索)文件,让它只在只在本域里面找.事实上,这样做是可以做到让输入的简称去匹配本域的用户全称,然而一旦这样做了,就是影响到门户的认证策略,因此会影响门户互访,因为互访也要调用认证策略对SSO的用户来认证,依我推测会影响到这个问题,故我否定了这个方法.  2)是否可以设置两个搜索策略,先在本地认证,如果再到林里认证,细想这个也不行,同样要影

4、响到互访且门户也不支持两种策略的.  b.从开发的角度来看,反正最终都是用到全名,那么只要做个处理,让它匹配到本地域的用户全称,其它域用户则不让登录;如果想要让其它域用户来登录的话,还要在登录页面的form加个其它域的属性,在代码里处理,找到相应域的用户全称,再传这个全称让它认证.  1)在中,就是在用户提交前,把form中的简称得到,通过ajax传到查找接口,返回本域该用户的全称.再提交给门户认证.  2)重写登录portlet,在代码实现查找到提交的用户名简称,查询该用户在本域的全称,再传给门户认证.  3)重

5、写认证模块,如上所述,传入全名给门户认证.  从上面的思考来说,1,2是确定可行,因为我未动其认证的机制,只是在传入的参数作了处理,不会影响到它自己的机制.由于3,要改到其它的认证机制,我也确定不了,改动它是否影响到互访功能,所以我也没有选择3.其实1,2的方法都差不多,只是传入全名的位置不一样,查找全名的代码是一样的.我觉得写java代码来实现就行了,不想去写ajax,故我选择了方法2.  四、重写门户登录portlet(login.ple);env.put(Context.INITIAL_CONTEXT_FAC

6、TORY,.sun.jndi.ldap.LdapCtxFactory);env.put(Context.PROVIDER_URL,ldapURL);env.put(Context.SECURITY_PRINCIPAL,=用户名,=用户存目录名,dc=结点名,dc=根名,dc=);env.put(Context.SECURITY_CREDENTIALS,123456);  LdapContextctx=null;try{ctx=ne.out.println(UsercannotlogontoLDAPe,LdapCon

7、te123下一页....,。xtctx){try{String[]attrDs={,givenName};SearchControlsctls=nep;(

8、(=%v)(samAccountName=%v))(objectclass=user));filter=filter.replaceAll(%v,loginName);//System.out.println(filter);NamingEnumerationnameEnum=ctx.search(=用户存目录名,dc=结点名,dc=根名,dc=,filter,

9、ctls);if(nameEnum.hasMore()){SearchResultentry=(SearchResult)nameEnum.next();returnentry.getName()+,=用户存目录名,dc=结点名,dc=根名,dc=;}}catch(NamingExceptione){System.out.println(searchuser

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。