亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么第二次testrole1攜帶了登陸信息?

當第一次登陸后,并沒有在cookie或者其他域保存任何信息 也就是說沒有任何信息可以證明用戶登陸了??

但是第二次直接跳轉頁面到testrole這個路徑? 卻有第一次登陸的角色的信息? ?服務器識別到了用戶曾經登陸過 也知道用戶的角色和權限? ?

?請問一下是怎么識別的 是因為配置的問題嗎

正在回答

4 回答

你登陸了,subject內有信息,服務器為關閉,肯定有你的信息,你是admin角色所以可以訪問testrole,沒有admin1這個角色所以報錯

0 回復 有任何疑惑可以回復我~

原理如下:第一次后臺認證成功后,shiro肯定生成了一個sessionId關聯著某個subject。放到session管理器中。然后把sessionId通過http響應頭set-Cookie的形式返回給瀏覽器。瀏覽器保留了該Cookie。下次訪問第二個url時,http請求頭里就攜帶了上次的cookie信息,也就是sessionId,然后shrio就可以通過從請求頭中提取,查詢內部的session管理器,取出關聯的subject對象。


這種形式,只能適用于web。

如果前端是app或者小程序的情況,不太實用。因為有些框架是不支持設置cookie的,但是會支持設置header。所以如果前端是app或者小程序的話,一般會通過header來返回和獲取對應的token(相當于sessionId)。我看jeectBoog就是放在請求頭和響應頭里的。那個token。

0 回復 有任何疑惑可以回復我~

就是存在請求體里面

0 回復 有任何疑惑可以回復我~

shiro框架 應該也是通過Jsessionid來判斷是否已經登錄的。登錄成功后就有Jsessionid,所以可以繼續訪問其他url。你可以通過瀏覽器F12工具 把Jsessionid再次編輯成其他的內容 然后請求,就會被重新打回login.html頁面了。

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么第二次testrole1攜帶了登陸信息?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號