1.需求:賬號同一時間只能在一處登入、將之前的使用者踢出:
shiro實現策略:獲取當前使用者session列表,直接刪除該使用者的其他登入資訊
import org.apache.shiro.session.mgt.eis.sessiondao;
@autowired
private sessiondao sessiondao;
protected authenticationinfo dogetauthenticationinfo(authenticationtoken authenticationtoken) throws authenticationexception }}
string pwd = null;
return new ******authenticationinfo(username,pwd,getname());
}
userdo : 儲存使用者資訊的實體類直接將session使用者資訊刪除,shiro會直接跳到登入介面。
使用者體驗不是太好,所增加乙個友好介面提示使用者
:實體類增加字段 name: conflict type: boolean
獲取當前已登入的使用者session列表、增加字段判斷,***判斷該欄位是否符合條件進行跳轉。
protected authenticationinfo dogetauthenticationinfo(authenticationtoken authenticationtoken) throws authenticationexception }}
string pwd = null;
return new ******authenticationinfo(username,pwd,getname());
}
***判斷是否有效
//這個判斷必須要新增不然會無限迴圈
if(!urlstring.equals("iscasnot") && !urlstring.endswith("logout"))}}
return super.prehandle(request,response);}}
controller:
string iscasnot()
modelandview casnot()
iscasnot.html:
您可以選擇重新登入或者修改密碼
立即前往登入
secure
安全加密
@2018 上海科技csdn****
頁面效果:
Shiro單使用者登入
有這樣乙個需求,兩地同時使用乙個賬號登入,需要將先登入的使用者的session刪除 使用者登入時判斷是否之前改賬號在別的地方登入 若沒有登入,直接進行登入 若有登入,則找到登入的session,給該session做個標記 當之前登入的使用者再次進行操作時,判斷其是否有標記,有則刪除其session,...
單使用者登入
目的 乙個賬號只能在乙個地方登入,不能同時登入 有兩種處理邏輯 1.a登入後,b不能使用同樣的賬戶進行登入 後台邏輯定義 使用者資料表多新增乙個字段,預設為false,每次使用者發起登入,檢測是否為false,是則可以登入,並設定為true,如果為true,則提示使用者已登入,請換個賬號 2.a登入...
Django實現單使用者登入
最近由於要畢業了寫 做畢設,然後還在實習發現已經好久都沒有寫部落格了。今天由於工作需求,需要用django實現單使用者登入。大概意思就是跟qq一樣的效果,每個賬號只能乙個地方登入使用,限制賬號的登入次數。由於用的是django自帶的認證,然後校驗使用者是否登入其實就是通過session實現的。下面就...