×

微信扫一扫,快捷登录!

[转]iTop集成SSO登录

标签: 暂无标签
  1. https删除://www.删除 删除/article-3553.html
复制代码
优化登录
2016.7.20更新
由于绝大多数用户都通过sso登录,因此决定未认证用户之间重定向至sso以提高用户体验。只需要在model.authent-sso.php中class定义的外面判断是否登录,未登录的跳转去sso(注意请求uri为toolkit和setup时不要跳转到sso,否则将导致这两个功能不可用)。

[backcolor=rgb(248, 248, 255) !important]
[color=rgb(170, 170, 170) !important]1

[color=rgb(170, 170, 170) !important]2

[color=rgb(170, 170, 170) !important]3

[color=rgb(170, 170, 170) !important]4

[color=rgb(170, 170, 170) !important]5

[color=rgb(170, 170, 170) !important]6

[color=rgb(170, 170, 170) !important]7

[color=rgb(170, 170, 170) !important]8

[color=rgb(170, 170, 170) !important]9

[color=rgb(170, 170, 170) !important]10

[color=rgb(170, 170, 170) !important]11

[color=rgb(170, 170, 170) !important]12

[color=rgb(170, 170, 170) !important]13

[color=rgb(170, 170, 170) !important]14

[color=rgb(170, 170, 170) !important]15

[color=rgb(170, 170, 170) !important]16


[color=rgb(153, 153, 153) !important]//cron任务忽略sso认证
if[color=rgb(51, 51, 51) !important]([color=teal !important]isset
[color=rgb(51, 51, 51) !important]([color=rgb(51, 51, 51) !important]$[color=rgb(0, 45, 122) !important]_SERVER[color=rgb(51, 51, 51) !important][[color=rgb(221, 17, 68) !important]'REQUEST_URI'[color=rgb(51, 51, 51) !important][color=rgb(51, 51, 51) !important])[color=rgb(51, 51, 51) !important])
[color=rgb(51, 51, 51) !important]{
[color=rgb(0, 111, 224) !important]        [color=rgb(153, 153, 153) !important]//如果访问 toolkit 或者 setup 等工具页面,则不跳转到sso
[color=rgb(0, 111, 224) !important]        [color=rgb(51, 51, 51) !important]$[color=rgb(0, 45, 122) !important]isToolPage[color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]=[color=rgb(0, 111, 224) !important] [color=rgb(128, 0, 128) !important]false[color=rgb(51, 51, 51) !important];
[color=rgb(0, 111, 224) !important]        if[color=rgb(51, 51, 51) !important]([color=teal !important]preg_match[color=rgb(51, 51, 51) !important]([color=rgb(221, 17, 68) !important]'/^\/toolkit\/|^\/webservices\/|^\/setup\//i'[color=rgb(51, 51, 51) !important],[color=rgb(51, 51, 51) !important]$[color=rgb(0, 45, 122) !important]_SERVER[color=rgb(51, 51, 51) !important][[color=rgb(221, 17, 68) !important]'REQUEST_URI'[color=rgb(51, 51, 51) !important][color=rgb(51, 51, 51) !important])[color=rgb(51, 51, 51) !important])
[color=rgb(0, 111, 224) !important]        [color=rgb(51, 51, 51) !important]{
[color=rgb(0, 111, 224) !important]                [color=rgb(51, 51, 51) !important]$[color=rgb(0, 45, 122) !important]isToolPage[color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]=[color=rgb(0, 111, 224) !important] [color=rgb(128, 0, 128) !important]true[color=rgb(51, 51, 51) !important];
[color=rgb(0, 111, 224) !important]        [color=rgb(51, 51, 51) !important]}
[color=rgb(0, 111, 224) !important]        if[color=rgb(51, 51, 51) !important]([color=rgb(0, 111, 224) !important]![color=teal !important]isset[color=rgb(51, 51, 51) !important]([color=rgb(51, 51, 51) !important]$[color=rgb(0, 45, 122) !important]_SESSION[color=rgb(51, 51, 51) !important][[color=rgb(221, 17, 68) !important]'auth_user'[color=rgb(51, 51, 51) !important][color=rgb(51, 51, 51) !important])[color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]&&[color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]![color=rgb(51, 51, 51) !important]$[color=rgb(0, 45, 122) !important]isToolPage[color=rgb(51, 51, 51) !important])
[color=rgb(0, 111, 224) !important]        [color=rgb(51, 51, 51) !important]{
[color=rgb(0, 111, 224) !important]                [color=rgb(0, 45, 122) !important]UserLeSSO[color=rgb(0, 111, 224) !important]::[color=teal !important]getM_TK[color=rgb(51, 51, 51) !important]([color=teal !important]base64_encode[color=rgb(51, 51, 51) !important]([color=rgb(51, 51, 51) !important]$[color=rgb(0, 45, 122) !important]_SERVER[color=rgb(51, 51, 51) !important][[color=rgb(221, 17, 68) !important]'REQUEST_URI'[color=rgb(51, 51, 51) !important][color=rgb(51, 51, 51) !important])[color=rgb(51, 51, 51) !important])[color=rgb(51, 51, 51) !important];
[color=rgb(0, 111, 224) !important]        [color=rgb(51, 51, 51) !important]}
[color=rgb(51, 51, 51) !important]}






其中参数 $_SERVER['REQUEST_URI'] 用于认证通过后重定向至登录前的链接。具体流程为记录用户登录前打开的request_uri, 作为url参数加到sso的next URL里,然后login.php就可以获取到这个uri,认证成功后直接重定向至该request_uri。
getM_TK()函数修改为:

[backcolor=rgb(248, 248, 255) !important]
[color=rgb(170, 170, 170) !important]1

[color=rgb(170, 170, 170) !important]2

[color=rgb(170, 170, 170) !important]3

[color=rgb(170, 170, 170) !important]4

[color=rgb(170, 170, 170) !important]5

[color=rgb(170, 170, 170) !important]6

[color=rgb(170, 170, 170) !important]7

[color=rgb(170, 170, 170) !important]8

[color=rgb(170, 170, 170) !important]9


[color=rgb(128, 0, 128) !important]static[color=rgb(0, 111, 224) !important] [color=rgb(128, 0, 128) !important]public[color=rgb(0, 111, 224) !important] [color=rgb(128, 0, 128) !important]function[color=rgb(0, 111, 224) !important] [color=teal !important]getM_TK[color=rgb(51, 51, 51) !important]([color=rgb(51, 51, 51) !important]$[color=rgb(0, 45, 122) !important]uri[color=rgb(0, 111, 224) !important]=[color=rgb(221, 17, 68) !important]""[color=rgb(51, 51, 51) !important])
[color=rgb(51, 51, 51) !important]{
[color=rgb(0, 111, 224) !important]    [color=rgb(51, 51, 51) !important]$[color=rgb(0, 45, 122) !important]sAppRootUrl[color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]=[color=rgb(0, 111, 224) !important] [color=teal !important]trim[color=rgb(51, 51, 51) !important]([color=rgb(0, 45, 122) !important]MetaModel[color=rgb(0, 111, 224) !important]::[color=teal !important]GetConfig[color=rgb(51, 51, 51) !important]([color=rgb(51, 51, 51) !important])[color=rgb(0, 111, 224) !important]->[color=teal !important]Get[color=rgb(51, 51, 51) !important]([color=rgb(221, 17, 68) !important]'app_root_url'[color=rgb(51, 51, 51) !important])[color=rgb(51, 51, 51) !important])[color=rgb(51, 51, 51) !important];
[color=rgb(0, 111, 224) !important]    [color=rgb(51, 51, 51) !important]$[color=rgb(0, 45, 122) !important]loginPage[color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]=[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important]"env-production/authent-sso/login.php"[color=rgb(51, 51, 51) !important];
[color=rgb(0, 111, 224) !important]    [color=rgb(51, 51, 51) !important]$[color=rgb(0, 45, 122) !important]sLoginURL[color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]=[color=rgb(0, 111, 224) !important] [color=teal !important]trim[color=rgb(51, 51, 51) !important]([color=rgb(0, 45, 122) !important]MetaModel[color=rgb(0, 111, 224) !important]::[color=teal !important]GetModuleSetting[color=rgb(51, 51, 51) !important]([color=rgb(221, 17, 68) !important]'authent-sso'[color=rgb(51, 51, 51) !important],[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important]'login_url'[color=rgb(51, 51, 51) !important],[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important]'http://localhost'[color=rgb(51, 51, 51) !important])[color=rgb(51, 51, 51) !important])[color=rgb(51, 51, 51) !important];
[color=rgb(0, 111, 224) !important]    [color=rgb(51, 51, 51) !important]$[color=rgb(0, 45, 122) !important]next[color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]=[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]$sAppRootUrl[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important].[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]$loginPage[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important].[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important]"?uri="[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important].[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]$[color=rgb(0, 45, 122) !important]uri[color=rgb(51, 51, 51) !important];
[color=rgb(0, 111, 224) !important]   
[color=rgb(0, 111, 224) !important]    [color=teal !important]header[color=rgb(51, 51, 51) !important]([color=rgb(221, 17, 68) !important]"Location: "[color=rgb(51, 51, 51) !important].[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]$sLoginURL[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important].[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important]"?next="[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important].[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]$[color=rgb(0, 45, 122) !important]next[color=rgb(51, 51, 51) !important])[color=rgb(51, 51, 51) !important];
[color=rgb(51, 51, 51) !important]}




接下来在login中处理

[backcolor=rgb(248, 248, 255) !important]
[color=rgb(170, 170, 170) !important]1

[color=rgb(170, 170, 170) !important]2

[color=rgb(170, 170, 170) !important]3

[color=rgb(170, 170, 170) !important]4

[color=rgb(170, 170, 170) !important]5

[color=rgb(170, 170, 170) !important]6

[color=rgb(170, 170, 170) !important]7

[color=rgb(170, 170, 170) !important]8

[color=rgb(170, 170, 170) !important]9


[color=rgb(51, 51, 51) !important]$[color=rgb(0, 45, 122) !important]appRootUrl[color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]=[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]UserLeSSO[color=rgb(0, 111, 224) !important]::[color=teal !important]getAppRootUrl[color=rgb(51, 51, 51) !important]([color=rgb(128, 0, 128) !important]false[color=rgb(51, 51, 51) !important])[color=rgb(51, 51, 51) !important];
[color=rgb(51, 51, 51) !important].[color=rgb(51, 51, 51) !important].[color=rgb(51, 51, 51) !important].[color=rgb(51, 51, 51) !important].
[color=rgb(51, 51, 51) !important].[color=rgb(51, 51, 51) !important].[color=rgb(51, 51, 51) !important].[color=rgb(51, 51, 51) !important].

if[color=rgb(51, 51, 51) !important]([color=rgb(0, 45, 122) !important]UserRights[color=rgb(0, 111, 224) !important]::[color=teal !important]CheckCredentials[color=rgb(51, 51, 51) !important]([color=rgb(0, 45, 122) !important]SSOUSER[color=rgb(51, 51, 51) !important],[color=rgb(221, 17, 68) !important]''[color=rgb(51, 51, 51) !important])[color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]===[color=rgb(0, 111, 224) !important] [color=rgb(128, 0, 128) !important]true[color=rgb(51, 51, 51) !important])
[color=rgb(51, 51, 51) !important]{
[color=rgb(0, 111, 224) !important]    [color=rgb(51, 51, 51) !important]$[color=rgb(0, 45, 122) !important]location[color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]=[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]$appRootUrl[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important].[color=rgb(0, 111, 224) !important] [color=teal !important]base64_decode[color=rgb(51, 51, 51) !important]([color=rgb(51, 51, 51) !important]$[color=rgb(0, 45, 122) !important]_GET[color=rgb(51, 51, 51) !important][[color=rgb(221, 17, 68) !important]'uri'[color=rgb(51, 51, 51) !important][color=rgb(51, 51, 51) !important])[color=rgb(51, 51, 51) !important];
[color=rgb(0, 111, 224) !important]    [color=teal !important]header[color=rgb(51, 51, 51) !important]([color=rgb(221, 17, 68) !important]"Location: $location"[color=rgb(51, 51, 51) !important])[color=rgb(51, 51, 51) !important];
[color=rgb(51, 51, 51) !important]}




为了取到不带URI的app_root_url,getAppRootUrl()函数修改为:

[backcolor=rgb(248, 248, 255) !important]
[color=rgb(170, 170, 170) !important]1

[color=rgb(170, 170, 170) !important]2

[color=rgb(170, 170, 170) !important]3

[color=rgb(170, 170, 170) !important]4

[color=rgb(170, 170, 170) !important]5

[color=rgb(170, 170, 170) !important]6

[color=rgb(170, 170, 170) !important]7

[color=rgb(170, 170, 170) !important]8

[color=rgb(170, 170, 170) !important]9

[color=rgb(170, 170, 170) !important]10

[color=rgb(170, 170, 170) !important]11

[color=rgb(170, 170, 170) !important]12


[color=rgb(128, 0, 128) !important]static[color=rgb(0, 111, 224) !important] [color=rgb(128, 0, 128) !important]public[color=rgb(0, 111, 224) !important] [color=rgb(128, 0, 128) !important]function[color=rgb(0, 111, 224) !important] [color=teal !important]getAppRootUrl[color=rgb(51, 51, 51) !important]([color=rgb(51, 51, 51) !important]$[color=rgb(0, 45, 122) !important]with_uri[color=rgb(0, 111, 224) !important]=[color=rgb(128, 0, 128) !important]true[color=rgb(51, 51, 51) !important])
[color=rgb(51, 51, 51) !important]{
[color=rgb(0, 111, 224) !important]    if[color=rgb(51, 51, 51) !important]([color=rgb(51, 51, 51) !important]$[color=rgb(0, 45, 122) !important]with_uri[color=rgb(51, 51, 51) !important])
[color=rgb(0, 111, 224) !important]    [color=rgb(51, 51, 51) !important]{
[color=rgb(0, 111, 224) !important]        return[color=rgb(0, 111, 224) !important] [color=teal !important]trim[color=rgb(51, 51, 51) !important]([color=rgb(0, 45, 122) !important]MetaModel[color=rgb(0, 111, 224) !important]::[color=teal !important]GetConfig[color=rgb(51, 51, 51) !important]([color=rgb(51, 51, 51) !important])[color=rgb(0, 111, 224) !important]->[color=teal !important]Get[color=rgb(51, 51, 51) !important]([color=rgb(221, 17, 68) !important]'app_root_url'[color=rgb(51, 51, 51) !important])[color=rgb(51, 51, 51) !important])[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important].[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important]"pages/UI.php"[color=rgb(51, 51, 51) !important];
[color=rgb(0, 111, 224) !important]    [color=rgb(51, 51, 51) !important]}
[color=rgb(0, 111, 224) !important]    else
[color=rgb(0, 111, 224) !important]    [color=rgb(51, 51, 51) !important]{
[color=rgb(0, 111, 224) !important]        [color=rgb(51, 51, 51) !important]$[color=rgb(0, 45, 122) !important]root_url[color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]=[color=rgb(0, 111, 224) !important] [color=teal !important]trim[color=rgb(51, 51, 51) !important]([color=rgb(0, 45, 122) !important]MetaModel[color=rgb(0, 111, 224) !important]::[color=teal !important]GetConfig[color=rgb(51, 51, 51) !important]([color=rgb(51, 51, 51) !important])[color=rgb(0, 111, 224) !important]->[color=teal !important]Get[color=rgb(51, 51, 51) !important]([color=rgb(221, 17, 68) !important]'app_root_url'[color=rgb(51, 51, 51) !important])[color=rgb(51, 51, 51) !important])[color=rgb(51, 51, 51) !important];
[color=rgb(0, 111, 224) !important]        return[color=rgb(0, 111, 224) !important] [color=teal !important]preg_replace[color=rgb(51, 51, 51) !important]([color=rgb(221, 17, 68) !important]"/\/$/"[color=rgb(51, 51, 51) !important],[color=rgb(221, 17, 68) !important]""[color=rgb(51, 51, 51) !important],[color=rgb(51, 51, 51) !important]$[color=rgb(0, 45, 122) !important]root_url[color=rgb(51, 51, 51) !important])[color=rgb(51, 51, 51) !important];
[color=rgb(0, 111, 224) !important]    [color=rgb(51, 51, 51) !important]}
[color=rgb(51, 51, 51) !important]}








上一篇:非常棒的扩展分享,感谢@得得地
下一篇:解读PRINCE2:项目管理委员会的构成和主要工作内容
htc

写了 5 篇文章,拥有财富 57,被 1 人关注

您需要登录后才可以回帖 登录 | 立即注册
B Color Link Quote Code Smilies

成为第一个吐槽的人

Powered by IT 运维管理
返回顶部