论坛首页 Java企业应用论坛

关于Portal、JSR168的一些想法和疑惑

浏览 41286 次
该帖已经被评为良好帖
作者 正文
   发表时间:2009-07-31  
如果是接入的新系统的话最好在谈接口的时候就强行要求一致,这样大家都比较省事。

实在没法一致的就只有做映射了,比如人力资源系统可能只有工号,那就再提供个服务让他通过用户名提取工号;建映射表也是个办法,不过维护量太大不推荐。
0 请登录后投票
   发表时间:2009-07-31   最后修改:2009-07-31
openeyes 写道
arkxu 写道
楼主的问题不太看的懂。觉得楼主最好多看看企业里使用portal的人,他们的系统是什么样子的。

对于技术问题。主要的实现就是一个所谓的portletcontainer, 依据jsr168. 当然168有很多的限制还有待268的改进。所以基本上每个公司都基于168有自己的扩展来满足那些还不被支持的标准。比如portlet和portlet之间的通信,portlet和portal之间的通信。

要学习jsr168或者268的实现,建议你看一下 pluto 的源代码,只是一个最最简单最最纯粹的portlet container。这个算是必经之路。



  我们的需求如下:
      现有OA,PA,IRB,....多个系统已经在用,其中OA是domino开发, PA, IRB都是j2ee应用
      现在要上一个门户,将OA中的待办文件、最新邮件等,IRB中最新资源列表集成到portal中,
   要求选中portal中的某个待办文件可以进入待办文件的办理流程(这个流程是在OA中的), 点击
   某个资源则可以查看该资源的详细内容。
      PA则只要在Portal中放置一个链接,点击链接可以直接登录PA就可以了。
  问题是基于工作量的原因,我们现在不想在Portal中重新开发待办文件的处理流程,只需要点击能跳到OA应用中去处理就可以了,也不想在Portal中实现详细资源查看这个功能,这中要求用什么方式集成比较好?(我们现在用iframe)

  谢谢
  


嗯。你们这个是一个典型的portal的应用。比较常见常见的需求。

这些系统都是相互独立的。 我的建议是你们先选择一个portal产品,比如liferay或者sun的portal(好处是开源的)。然后把现有系统的表现层wrap成portlet. 比如可以使用spring portlet mvc framework. http://static.springsource.org/spring/docs/2.5.x/reference/portlet.html

然后在做一个单点登陆,简单的集成(只需要authentication)可以使用CAS(http://www.jasig.org), 如果要求高一点的(authentication and authorization)就用sun的opensso吧。不错的。(这样顺便也把各个系统的用户给统一了,建议使用opends, sun的东西对别家的ldap支持不砸地,主要还是别家ldap功能都比较简单, 自己做schema代价比较高。)
0 请登录后投票
   发表时间:2009-07-31  
openeyes 写道
再问一个问题,CAS这种方式如果多个应用间用户名不同怎么办?典型的就是Portal和下面的某个应用用户名不一致需要影射的


CAS就是做多个系统用户集成的,不管两个系统在世界什么地方 ;)
简单的理解就是google的用户登陆,或者yahoo的用户登陆。可以提供不同域名,多个应用,或者父/子系统的authentication and authorization.
0 请登录后投票
   发表时间:2009-07-31  
openeyes 写道
baron 写道


以我做过的Portal项目来说,Portlet基本都是用的IFrame方式,SSO用的是Sun Access Manager,基本流程是这样的:用户通过AM登录,AM在本地将一个随机串作为令牌存入会话Cookie,所有被集成的应用在收到HTTP请求后会从Cookie抓取令牌往AM验证得到用户身份完成授权,整个过程不需要页面跳转。


请问兄台,AM的Cookie在其他应用中怎么访问啊?部署在不同的context path下的应用不能共享cookie的吧?


谈到实现方式CAS的authentication可以看这里(有图):
http://www.jasig.org/cas/cas2-architecture

最简单的认证方式就是:
当你用cas的login窗口登陆之后,会在认证服务器留下记录,系统知道你是谁。然后redirect到你想访问的应用同时url里会带上一个只能使用一次的ticket, app需要拿到这个ticket再到认证服务器验证一下这个ticket是否有效,这个访问者是谁等等信息。都通过了,你就可以访问这个应用了。所以和domain,等等都是无关的。
0 请登录后投票
   发表时间:2009-07-31  
arkxu 写道
openeyes 写道
再问一个问题,CAS这种方式如果多个应用间用户名不同怎么办?典型的就是Portal和下面的某个应用用户名不一致需要影射的


CAS就是做多个系统用户集成的,不管两个系统在世界什么地方 ;)
简单的理解就是google的用户登陆,或者yahoo的用户登陆。可以提供不同域名,多个应用,或者父/子系统的authentication and authorization.

   谢谢 arkxu的回复,我的意思是比如Portal和OA两个应用,Portal中的用户是usera, 对应OA中的用户是usera1,我看了yale cas的示意图,如果我用usera登陆了cas,那么cas会返回usera的信息给portal,那么我访问OA的时候怎么获得usera1这个用户信息呢?
   第一次了解CAS,请多指教,再次谢谢
0 请登录后投票
   发表时间:2009-07-31  
openeyes 写道
arkxu 写道
openeyes 写道
再问一个问题,CAS这种方式如果多个应用间用户名不同怎么办?典型的就是Portal和下面的某个应用用户名不一致需要影射的


CAS就是做多个系统用户集成的,不管两个系统在世界什么地方 ;)
简单的理解就是google的用户登陆,或者yahoo的用户登陆。可以提供不同域名,多个应用,或者父/子系统的authentication and authorization.

   谢谢 arkxu的回复,我的意思是比如Portal和OA两个应用,Portal中的用户是usera, 对应OA中的用户是usera1,我看了yale cas的示意图,如果我用usera登陆了cas,那么cas会返回usera的信息给portal,那么我访问OA的时候怎么获得usera1这个用户信息呢?
   第一次了解CAS,请多指教,再次谢谢


CAS其实是解决不了这个问题的,要解决这个问题,还得上一套身份管理系统,如IBM的tivoli identity manager。

对老的系统账号不一致问题,其实归根到底还是要做映射,只是有身份管理系统,可能会方便些。

建了portal以后,账号最好就在身份管理中心这里统一维护了,省很多事。
0 请登录后投票
   发表时间:2009-07-31  
其实做整合项目,光一个portal是解决不了问题的,我做过的项目,一般都会先做好统一认证、身份管理,这两个问题解决了,再做数据、应用的整合就轻松多了。

另外,做企业门户多多少少肯定都会涉及到业务系统的改造,有时候,管理协调能力的要求比技术要求高多了,搞不好就是个大坑,大家一定要小心了!
0 请登录后投票
   发表时间:2009-07-31  
popoer 写道
openeyes 写道
arkxu 写道
openeyes 写道
再问一个问题,CAS这种方式如果多个应用间用户名不同怎么办?典型的就是Portal和下面的某个应用用户名不一致需要影射的


CAS就是做多个系统用户集成的,不管两个系统在世界什么地方 ;)
简单的理解就是google的用户登陆,或者yahoo的用户登陆。可以提供不同域名,多个应用,或者父/子系统的authentication and authorization.

   谢谢 arkxu的回复,我的意思是比如Portal和OA两个应用,Portal中的用户是usera, 对应OA中的用户是usera1,我看了yale cas的示意图,如果我用usera登陆了cas,那么cas会返回usera的信息给portal,那么我访问OA的时候怎么获得usera1这个用户信息呢?
   第一次了解CAS,请多指教,再次谢谢


CAS其实是解决不了这个问题的,要解决这个问题,还得上一套身份管理系统,如IBM的tivoli identity manager。

对老的系统账号不一致问题,其实归根到底还是要做映射,只是有身份管理系统,可能会方便些。

建了portal以后,账号最好就在身份管理中心这里统一维护了,省很多事。



是的,光CAS是不行的。不过对CAS稍作扩展引入身份映射也是不难的,只需在Ticket验证时返回相应业务系统对应的用户名即可。
0 请登录后投票
   发表时间:2009-07-31  
popoer 写道
其实做整合项目,光一个portal是解决不了问题的,我做过的项目,一般都会先做好统一认证、身份管理,这两个问题解决了,再做数据、应用的整合就轻松多了。

另外,做企业门户多多少少肯定都会涉及到业务系统的改造,有时候,管理协调能力的要求比技术要求高多了,搞不好就是个大坑,大家一定要小心了!


确实是经验之谈。
0 请登录后投票
   发表时间:2009-08-05  
httpclient 能做到sso吗 能和cas联合么
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics