<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          重磅推薦:很全的 Java 權(quán)限認(rèn)證框架!

          共 3777字,需瀏覽 8分鐘

           ·

          2021-03-14 21:44

          來(lái)源:GitHub上sa-token 項(xiàng)目

          今天給大家推薦的這個(gè)開(kāi)源項(xiàng)目超級(jí)棒,可能是史上功能最全的 Java 權(quán)限認(rèn)證框架!

          這個(gè)開(kāi)源項(xiàng)目就是:sa-token

          Sa-Token是什么?

          sa-token是一個(gè)輕量級(jí)Java權(quán)限認(rèn)證框架,主要解決:登錄認(rèn)證、權(quán)限認(rèn)證、Session會(huì)話、單點(diǎn)登錄、OAuth2.0 等一系列權(quán)限相關(guān)問(wèn)題

          框架針對(duì)踢人下線、自動(dòng)續(xù)簽、前后臺(tái)分離、分布式會(huì)話……等常見(jiàn)業(yè)務(wù)進(jìn)行N多適配,通過(guò)sa-token,你可以以一種極簡(jiǎn)的方式實(shí)現(xiàn)系統(tǒng)的權(quán)限認(rèn)證部分

          與其它權(quán)限認(rèn)證框架相比,sa-token 具有以下優(yōu)勢(shì):

          1. 簡(jiǎn)單 :可零配置啟動(dòng)框架,真正的開(kāi)箱即用,低成本上手
          2. 強(qiáng)大 :目前已集成幾十項(xiàng)權(quán)限相關(guān)特性,涵蓋了大部分業(yè)務(wù)場(chǎng)景的解決方案
          3. 易用 :如絲般順滑的API調(diào)用,大量高級(jí)特性統(tǒng)統(tǒng)只需一行代碼即可實(shí)現(xiàn)
          4. 高擴(kuò)展 :幾乎所有組件都提供了擴(kuò)展接口,90%以上的邏輯都可以按需重寫(xiě)

          有了sa-token,你所有的權(quán)限認(rèn)證問(wèn)題,都不再是問(wèn)題!

          Sa-Token 能做什么?

          • 登錄驗(yàn)證 —— 輕松登錄鑒權(quán),并提供五種細(xì)分場(chǎng)景值
          • 權(quán)限驗(yàn)證 —— 適配RBAC權(quán)限模型,不同角色不同授權(quán)
          • Session會(huì)話 —— 專業(yè)的數(shù)據(jù)緩存中心
          • 踢人下線 —— 將違規(guī)用戶立刻清退下線
          • 持久層擴(kuò)展 —— 可集成Redis、Memcached等專業(yè)緩存中間件,重啟數(shù)據(jù)不丟失
          • 分布式會(huì)話 —— 提供jwt集成和共享數(shù)據(jù)中心兩種分布式會(huì)話方案
          • 單點(diǎn)登錄 —— 一處登錄,處處通行
          • 模擬他人賬號(hào) —— 實(shí)時(shí)操作任意用戶狀態(tài)數(shù)據(jù)
          • 臨時(shí)身份切換 —— 將會(huì)話身份臨時(shí)切換為其它賬號(hào)
          • 無(wú)Cookie模式 —— APP、小程序等前后臺(tái)分離場(chǎng)景
          • 同端互斥登錄 —— 像QQ一樣手機(jī)電腦同時(shí)在線,但是兩個(gè)手機(jī)上互斥登錄
          • 多賬號(hào)認(rèn)證體系 —— 比如一個(gè)商城項(xiàng)目的user表和admin表分開(kāi)鑒權(quán)
          • 花式token生成 —— 內(nèi)置六種token風(fēng)格,還可自定義token生成策略
          • 注解式鑒權(quán) —— 優(yōu)雅的將鑒權(quán)與業(yè)務(wù)代碼分離
          • 路由攔截式鑒權(quán) —— 根據(jù)路由攔截鑒權(quán),可適配restful模式
          • 自動(dòng)續(xù)簽 —— 提供兩種token過(guò)期策略,靈活搭配使用,還可自動(dòng)續(xù)簽
          • 會(huì)話治理 —— 提供方便靈活的會(huì)話查詢接口
          • 組件自動(dòng)注入 —— 零配置與Spring等框架集成
          • 更多功能正在集成中... —— 如有您有好想法或者建議,歡迎加群交流

          代碼示例

          sa-token的API調(diào)用非常簡(jiǎn)單,有多簡(jiǎn)單呢?以登錄驗(yàn)證為例,你只需要:

          // 在登錄時(shí)寫(xiě)入當(dāng)前會(huì)話的賬號(hào)id
          StpUtil.setLoginId(10001);

          // 然后在任意需要校驗(yàn)登錄處調(diào)用以下API
          // 如果當(dāng)前會(huì)話未登錄,這句代碼會(huì)拋出 `NotLoginException`異常
          StpUtil.checkLogin();

          至此,我們已經(jīng)借助sa-token框架完成登錄授權(quán)!

          此時(shí)的你小腦袋可能飄滿了問(wèn)號(hào),就這么簡(jiǎn)單?自定義Realm呢?全局過(guò)濾器呢?我不用寫(xiě)各種配置文件嗎?

          事實(shí)上在此我可以負(fù)責(zé)的告訴你,在sa-token中,登錄授權(quán)就是如此的簡(jiǎn)單,不需要什么全局過(guò)濾器,不需要各種亂七八糟的配置!只需要這一行簡(jiǎn)單的API調(diào)用,即可完成會(huì)話的登錄授權(quán)!

          當(dāng)你受夠Shiro、Security等框架的三拜九叩之后,你就會(huì)明白,相對(duì)于這些傳統(tǒng)老牌框架,sa-token的API設(shè)計(jì)是多么的清爽!

          權(quán)限認(rèn)證示例 (只有具有user:add權(quán)限的會(huì)話才可以進(jìn)入請(qǐng)求)

          @SaCheckPermission("user:add")
          @RequestMapping("/user/insert")
          public String insert(SysUser user) {
          return "用戶增加";
          }

          將某個(gè)賬號(hào)踢下線 (待到對(duì)方再次訪問(wèn)系統(tǒng)時(shí)會(huì)拋出NotLoginException異常)

          // 使賬號(hào)id為10001的會(huì)話注銷登錄
          StpUtil.logoutByLoginId(10001);

          除了以上的示例,sa-token還可以一行代碼完成以下功能:

          StpUtil.setLoginId(10001);                // 標(biāo)記當(dāng)前會(huì)話登錄的賬號(hào)id
          StpUtil.getLoginId();                     // 獲取當(dāng)前會(huì)話登錄的賬號(hào)id
          StpUtil.isLogin();                        // 獲取當(dāng)前會(huì)話是否已經(jīng)登錄, 返回truefalse
          StpUtil.logout();                         // 當(dāng)前會(huì)話注銷登錄
          StpUtil.logoutByLoginId(10001);           // 讓賬號(hào)為10001的會(huì)話注銷登錄(踢人下線)
          StpUtil.hasRole("super-admin");           // 查詢當(dāng)前賬號(hào)是否含有指定角色標(biāo)識(shí), 返回truefalse
          StpUtil.hasPermission("user:add");        // 查詢當(dāng)前賬號(hào)是否含有指定權(quán)限, 返回truefalse
          StpUtil.getSession();                     // 獲取當(dāng)前賬號(hào)id的Session
          StpUtil.getSessionByLoginId(10001);       // 獲取賬號(hào)id為10001的Session
          StpUtil.getTokenValueByLoginId(10001);    // 獲取賬號(hào)id為10001的token令牌值
          StpUtil.setLoginId(10001, "PC");          // 指定設(shè)備標(biāo)識(shí)登錄
          StpUtil.logoutByLoginId(10001, "PC");     // 指定設(shè)備標(biāo)識(shí)進(jìn)行強(qiáng)制注銷 (不同端不受影響)
          StpUtil.switchTo(10044);                  // 將當(dāng)前會(huì)話身份臨時(shí)切換為其它賬號(hào)

          開(kāi)源項(xiàng)目地址:https://github.com/click33/sa-token

          我正在更新《10萬(wàn)字Springboot經(jīng)典學(xué)習(xí)筆記》中,點(diǎn)擊下面小卡片,進(jìn)入【Java開(kāi)發(fā)寶典】,回復(fù):筆記,即可免費(fèi)獲取。

          點(diǎn)贊是最大的支持 

          瀏覽 59
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  做爱视频在哪里可以看? | 黄色免费在线观看国产 | 少妇做爰18P极品少妇 | 大香蕉网伊人在线视频 | 五月丁香成人 |