Spring+ Spring cloud + SSO單點(diǎn)登錄應(yīng)用認(rèn)證

之前的文章中有介紹spring cloud sso集成的方案,也做過(guò)spring + jwt + redis的解決方案,不同系統(tǒng)的無(wú)縫隙集成,統(tǒng)一的sso單點(diǎn)登錄界面的管理、每個(gè)應(yīng)用集成的權(quán)限認(rèn)證,白名單等都是我們需要考慮的,現(xiàn)在針對(duì)于以上的問(wèn)題我們做了sso單點(diǎn)登錄應(yīng)用認(rèn)證平臺(tái),設(shè)計(jì)如下:

1. 數(shù)據(jù)庫(kù)設(shè)計(jì):

Java代碼







DROP?TABLE?IF?EXISTS?`sso_app_apply`;

CREATE?TABLE?`sso_app_apply`?(

`id`?varchar(200)?NOT?NULL?COMMENT'編號(hào)',

`type`?varchar(200)?NOT?NULL?COMMENT'所屬分類(lèi)',

`applicant`?varchar(200)?NOT?NULL?COMMENT'申請(qǐng)人',

`approver`?varchar(200)?NOT?NULL?COMMENT'審批人',

`appname`?varchar(200)?NOT?NULL?COMMENT'應(yīng)用名稱(chēng)',

`range`?varchar(200)?NOT?NULL?COMMENT'使用范圍',

`token`?varchar(200)?NOT?NULL?COMMENT'token認(rèn)證碼',

`approval_time`?datetime?NOT?NULL?COMMENT'審批時(shí)間',

`create_date`?datetime?NOT?NULL?COMMENT'創(chuàng)建時(shí)間',

`update_by`?varchar(64)?NOT?NULL?COMMENT'更新者',

`update_date`?datetime?NOT?NULL?COMMENT'更新時(shí)間',

`del_flag`char(1)?NOT?NULL?DEFAULT'0'COMMENT'刪除標(biāo)記',

`status`char(1)?DEFAULT'0'COMMENT'審核狀態(tài):0(待審核)?1(審核通過(guò))?2(駁回)?3(黑名單)',

PRIMARY?KEY?(`id`)

)?ENGINE=InnoDB?DEFAULT?CHARSET=utf8?COMMENT='sso應(yīng)用申請(qǐng)表';

[java]view plaincopyprint?

DROP?TABLE?IF?EXISTS?`sso_app_apply`;

CREATE?TABLE?`sso_app_apply`?(

`id`?varchar(200)?NOT?NULL?COMMENT'編號(hào)',

`type`?varchar(200)?NOT?NULL?COMMENT'所屬分類(lèi)',

`applicant`?varchar(200)?NOT?NULL?COMMENT'申請(qǐng)人',

`approver`?varchar(200)?NOT?NULL?COMMENT'審批人',

`appname`?varchar(200)?NOT?NULL?COMMENT'應(yīng)用名稱(chēng)',

`range`?varchar(200)?NOT?NULL?COMMENT'使用范圍',

`token`?varchar(200)?NOT?NULL?COMMENT'token認(rèn)證碼',

`approval_time`?datetime?NOT?NULL?COMMENT'審批時(shí)間',

`create_date`?datetime?NOT?NULL?COMMENT'創(chuàng)建時(shí)間',

`update_by`?varchar(64)?NOT?NULL?COMMENT'更新者',

`update_date`?datetime?NOT?NULL?COMMENT'更新時(shí)間',

`del_flag`char(1)?NOT?NULL?DEFAULT'0'COMMENT'刪除標(biāo)記',

`status`char(1)?DEFAULT'0'COMMENT'審核狀態(tài):0(待審核)?1(審核通過(guò))?2(駁回)?3(黑名單)',

PRIMARY?KEY?(`id`)

)?ENGINE=InnoDB?DEFAULT?CHARSET=utf8?COMMENT='sso應(yīng)用申請(qǐng)表';

DROP TABLE IF EXISTS `sso_app_apply`;

CREATE TABLE `sso_app_apply` (

`id` varchar(200) NOT NULL COMMENT '編號(hào)',

`type` varchar(200) NOT NULL COMMENT '所屬分類(lèi)',

`applicant` varchar(200) NOT NULL COMMENT '申請(qǐng)人',

`approver` varchar(200) NOT NULL COMMENT '審批人',

`appname` varchar(200) NOT NULL COMMENT '應(yīng)用名稱(chēng)',

`range` varchar(200) NOT NULL COMMENT '使用范圍',

`token` varchar(200) NOT NULL COMMENT 'token認(rèn)證碼',

`approval_time` datetime NOT NULL COMMENT '審批時(shí)間',

`create_date` datetime NOT NULL COMMENT '創(chuàng)建時(shí)間',

`update_by` varchar(64) NOT NULL COMMENT '更新者',

`update_date` datetime NOT NULL COMMENT '更新時(shí)間',

`del_flag` char(1) NOT NULL DEFAULT '0' COMMENT '刪除標(biāo)記',

`status` char(1) DEFAULT '0' COMMENT '審核狀態(tài):0(待審核) 1(審核通過(guò)) 2(駁回) 3(黑名單)',

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='sso應(yīng)用申請(qǐng)表';

Java代碼







DROP?TABLE?IF?EXISTS?`sso_app_template`;

CREATE?TABLE?`sso_app_template`?(

`id`?varchar(200)?NOT?NULL?COMMENT'編號(hào)',

`a_id`?varchar(200)?NOT?NULL?COMMENT'應(yīng)用id',

`t_id`?varchar(200)?NOT?NULL?COMMENT'模板id',

PRIMARY?KEY?(`id`)

)?ENGINE=InnoDB?DEFAULT?CHARSET=utf8?COMMENT='sso應(yīng)用模板中間表';

[java]view plaincopyprint?

DROP?TABLE?IF?EXISTS?`sso_app_template`;

CREATE?TABLE?`sso_app_template`?(

`id`?varchar(200)?NOT?NULL?COMMENT'編號(hào)',

`a_id`?varchar(200)?NOT?NULL?COMMENT'應(yīng)用id',

`t_id`?varchar(200)?NOT?NULL?COMMENT'模板id',

PRIMARY?KEY?(`id`)

)?ENGINE=InnoDB?DEFAULT?CHARSET=utf8?COMMENT='sso應(yīng)用模板中間表';

DROP TABLE IF EXISTS `sso_app_template`;

CREATE TABLE `sso_app_template` (

`id` varchar(200) NOT NULL COMMENT '編號(hào)',

`a_id` varchar(200) NOT NULL COMMENT '應(yīng)用id',

`t_id` varchar(200) NOT NULL COMMENT '模板id',

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='sso應(yīng)用模板中間表';

Java代碼







DROP?TABLE?IF?EXISTS?`sso_template`;

CREATE?TABLE?`sso_template`?(

`id`?varchar(200)?NOT?NULL?COMMENT'編號(hào)',

`name`?varchar(200)?NOT?NULL?COMMENT'模板名稱(chēng)',

`type`?varchar(200)?NOT?NULL?COMMENT'模板分類(lèi)',

`img`?varchar(200)?NOT?NULL?COMMENT'模板圖片',

`create_by`?varchar(64)?NOT?NULL?COMMENT'創(chuàng)建者',

`create_date`?datetime?NOT?NULL?COMMENT'創(chuàng)建時(shí)間',

`update_by`?varchar(64)?NOT?NULL?COMMENT'更新者',

`update_date`?datetime?NOT?NULL?COMMENT'更新時(shí)間',

PRIMARY?KEY?(`id`)

)?ENGINE=InnoDB?DEFAULT?CHARSET=utf8?COMMENT='sso模板表';

[java]view plaincopyprint?

DROP?TABLE?IF?EXISTS?`sso_template`;

CREATE?TABLE?`sso_template`?(

`id`?varchar(200)?NOT?NULL?COMMENT'編號(hào)',

`name`?varchar(200)?NOT?NULL?COMMENT'模板名稱(chēng)',

`type`?varchar(200)?NOT?NULL?COMMENT'模板分類(lèi)',

`img`?varchar(200)?NOT?NULL?COMMENT'模板圖片',

`create_by`?varchar(64)?NOT?NULL?COMMENT'創(chuàng)建者',

`create_date`?datetime?NOT?NULL?COMMENT'創(chuàng)建時(shí)間',

`update_by`?varchar(64)?NOT?NULL?COMMENT'更新者',

`update_date`?datetime?NOT?NULL?COMMENT'更新時(shí)間',

PRIMARY?KEY?(`id`)

)?ENGINE=InnoDB?DEFAULT?CHARSET=utf8?COMMENT='sso模板表';

DROP TABLE IF EXISTS `sso_template`;

CREATE TABLE `sso_template` (

`id` varchar(200) NOT NULL COMMENT '編號(hào)',

`name` varchar(200) NOT NULL COMMENT '模板名稱(chēng)',

`type` varchar(200) NOT NULL COMMENT '模板分類(lèi)',

`img` varchar(200) NOT NULL COMMENT '模板圖片',

`create_by` varchar(64) NOT NULL COMMENT '創(chuàng)建者',

`create_date` datetime NOT NULL COMMENT '創(chuàng)建時(shí)間',

`update_by` varchar(64) NOT NULL COMMENT '更新者',

`update_date` datetime NOT NULL COMMENT '更新時(shí)間',

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='sso模板表';

2. 執(zhí)行流程

A. 成用戶注冊(cè) (可以注冊(cè)個(gè)人賬戶或者企業(yè)賬戶)

B. ?申請(qǐng)應(yīng)用(可能是多個(gè)應(yīng)用),選擇不同的模板(不同模板對(duì)應(yīng)不同行業(yè)的sso單點(diǎn)登錄系統(tǒng))

C. ?管理人員進(jìn)行應(yīng)用審核(申請(qǐng)人提交信息的審核),審核通過(guò)以后通過(guò)加密方式生成應(yīng)用對(duì)應(yīng)的token信息

D. ?后臺(tái)管理(應(yīng)用列表、應(yīng)用審核、模板管理等)

E. 將token信息和應(yīng)用信息傳遞,進(jìn)行sso統(tǒng)一攔截器認(rèn)證(驗(yàn)證白名單)

F. 成功or失?。ㄌD(zhuǎn)到指定模板的sso登錄界面)

3. 效果界面:





愿意了解框架技術(shù)或者源碼的朋友直接求求交流分享技術(shù):3133806896

分布式的一些解決方案,有愿意了解的朋友可以找我們團(tuán)隊(duì)探討

更多詳細(xì)源碼參考來(lái)源

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 之前的文章中有介紹spring cloud sso集成的方案,也做過(guò)spring + jwt + redis的解決...
    嘻嘻哈哈1155閱讀 507評(píng)論 0 7
  • CREATE TABLE IF NOT EXISTS ecs_order_info (order_id mediu...
    cookie口閱讀 16,132評(píng)論 0 16
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,569評(píng)論 19 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類(lèi)相關(guān)的語(yǔ)法,內(nèi)部類(lèi)的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 34,718評(píng)論 18 399
  • 其實(shí)網(wǎng)購(gòu)帶來(lái)的不適感多來(lái)源于懷疑不信任的心態(tài),還有游移不定中消耗的選擇能量,。
    jk865閱讀 168評(píng)論 0 0

友情鏈接更多精彩內(nèi)容