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

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

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

Java代碼







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

CREATE?TABLE?`sso_app_apply`?(

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

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

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

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

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

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

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

`approval_time`?datetime?NOT?NULL?COMMENT'審批時間',

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

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

`update_date`?datetime?NOT?NULL?COMMENT'更新時間',

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

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

PRIMARY?KEY?(`id`)

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

[java]view plaincopyprint?

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

CREATE?TABLE?`sso_app_apply`?(

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

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

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

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

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

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

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

`approval_time`?datetime?NOT?NULL?COMMENT'審批時間',

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

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

`update_date`?datetime?NOT?NULL?COMMENT'更新時間',

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

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

PRIMARY?KEY?(`id`)

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

DROP TABLE IF EXISTS `sso_app_apply`;

CREATE TABLE `sso_app_apply` (

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

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

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

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

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

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

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

`approval_time` datetime NOT NULL COMMENT '審批時間',

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

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

`update_date` datetime NOT NULL COMMENT '更新時間',

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

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

PRIMARY KEY (`id`)

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

Java代碼







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

CREATE?TABLE?`sso_app_template`?(

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

`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'編號',

`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 '編號',

`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'編號',

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

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

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

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

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

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

`update_date`?datetime?NOT?NULL?COMMENT'更新時間',

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'編號',

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

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

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

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

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

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

`update_date`?datetime?NOT?NULL?COMMENT'更新時間',

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 '編號',

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

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

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

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

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

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

`update_date` datetime NOT NULL COMMENT '更新時間',

PRIMARY KEY (`id`)

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

2. 執(zhí)行流程

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

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

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

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

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

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

3. 效果界面:





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

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

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

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

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

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

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