OAM Logout

在用OAM实现单点登录方案之后,发现原有的产品里的应用,如BPM的Workspace和Composer,OAM域的Console、EM和OAMConsole,都无法实现单点注销。

Workspace、Composer、EM和Console的解决方法比较简单,都是通过Apache的Rewrite规则来实现的。
  
RewriteEngine On
   RewriteRule ^/console/jsp/common/logout.jsp "/oam/server/logout?end_url=/console" [R]
   RewriteRule ^/em/adfAuthentication "/oam/server/logout?end_url=/em" [R]
   RewriteRule ^/bpm/workspace/adfAuthentication "/oam/server/logout?end_url=/bpm/workspace" [R]
   RewriteRule ^/bpm/composer/adfAuthentication "/oam/server/logout?end_url=/bpm/composer" [R]
   RewriteOptions inherit

其中,Console是通过访问/console/jsp/common/logout.jsp地址的时候转出,Workspace、Composer和EM是通过应用内的/adfAuthentication路径来转出。其中Workspace、Composer和EM的adfAuthentication路径对应的都是处理类oracle.adf.share.security.authentication.AuthenticationServlet,是ADF共享的认证处理类。
最开始尝试对Workspace用路径/bpm/workspace/logout.jsp来转出,对Composer用路径/bpm/composer/logout.jsp来转出,对EM用路径/em/targetauth/emaslogout.jsp来转出,均无效,Apache220没有对这些路径发出请求。

OAMConsole里有三个地方要在OAMConsole应用里做配置。
第一处是认证策略。
用来做用户认证的策略LDAPScheme_laho要设置为默认值。
OAMAdminConsoleScheme策略里的上下文值是/oamconsole而不是/oam,质询URL是http://172.30.242.220:7777/login/login.jsp而不是/pages/login.jsp。
第二处是OAM代理。
代理IAMSuiteAgent用户定义的参数里是logoutRedirectUrl=http://172.30.242.220:7777/oam/server/logout而不是logoutRedirectUrl=http://oamserver1:14100/oam/server/logout,注销URL填上/oamsso/logout.html。
代理RREG_OHS1_OAM11G的注销URL补上/oamsso/logout.html。
第三处是Apache的转发设置,对应用oamsso进行转发。
<Location /oamsso>
    SetHandler weblogic-handler
    WebLogicCluster 172.30.242.105:14100,172.30.242.145:14100
</Location>

猜你喜欢

转载自cutesunshineriver.iteye.com/blog/2003842