關於shiro的猜測

2022-07-02 15:42:16 字數 742 閱讀 9729

記錄一下自己的猜測,等到有能力閱讀原始碼的時候,再驗證一下猜測是否成立

最近研究了一下shiro整合jwt,上網查了一些資料,寫了乙個簡單的實驗專案。

我使用的測試工具是postman,之前在沒有整合jwt之前,我發現如果不登入的情況下直接訪問授權資源是不被允許的,後來我嘗試著在登入之後,改掉postman請求中header中的sessionid,發現訪問失敗了。

由此猜測shiro在登入後,會為使用者建立session,訪問授權資源時如果沒有提供正確的sessionid則視為未登入(僅僅是猜測,水平有限沒看過原始碼)

否則的話,修改了sessionid為什麼會影響訪問呢?

之後我使用整合了jwt的專案嘗試了一下同樣的操作,發現怎麼修改sessionid都絲毫不會影響訪問。

當http請求提供了token時,會進行認證、授權,如果沒有提供token,則也會允許通過,但不會為該使用者進行認證,這個判斷是為了當使用者訪問獲取token的介面時不會被攔截而設計。

第一次獲取token會驗證使用者的使用者名稱和密碼,驗證無誤則提供給使用者乙個token。

以後每次訪問都攜帶token,每一次都進行認證授權的操作。

那麼再延伸思考一下:

如果我的第乙個猜想成立的話,那麼當訪問分布式專案的時候,如果沒有通過一些方案共享session的情況下,則可能導致使用者第一次登陸建立session,第二次訪問的服務端沒有他的session而被認定為未登入。

但是,如果整合了jwt就避免了這個問題,每次攜帶令牌訪問,每次都重新認證然後授權。

關於scanf內部執行方式的猜測

關於scanf內部執行方式的猜測 大家都會用scanf,利用它輸入一些資料都是沒問題的,但是不知道你們在運用的時候是否出現過一些比較煩的問題?大家腦子中是否有快取區這個概念?首先,我先來說下scanf的執行機制。第乙個條件就是需要程式中要有scanf這條語句。第二個條件是scanf裡面要求使用者輸入...

關於shiro不進入successURL的問題

在學習shiro的時候,使用shiro提供的登入驗證,但是一直不跳入successurl。name securitymanager ref securitymanager name loginurl value user login property name successurl value us...

關於shiro不執行授權方法的原因

自己在學習shiro框架時,使用者在登入的時候只執行認證方法而沒有去執行授權dogetauthorizationinfo 方法.剛開始以為是 配置錯誤了,有人說shiro的東西要配到springmvc的配置檔案中,結果發現並沒有什麼用.後來才發現對shiro認證與授權理解錯誤.shiro並不是在認證...