到公司后接手了一套系統是springboot+shiro 框架的。因為要結合微信掃碼登錄,原有那套賬號和密碼登錄要改下
然后網上找了對應方案定義多個realm,弄得差不多了突然想到,
還不如在自定義一個UsernamePasswordToken繼承org.apache.shiro.authc.UsernamePasswordToken 添加個類別屬性判斷下,假如是微信掃碼,在doGetAuthenticationInfo 方法的時候重判斷下進行另外一個查資料庫的操作.不知道這樣是否可行....
前端登錄
// 自定義UsernamePasswordToken 繼承shiro的UsernamePasswordToken
UsernamePasswordToken token = new UsernamePasswordToken();
token.setUsername(username);
token.setPassword(password.toCharArray());
token.setRememberMe(rememberMe);
token.setType("weinxin");//自定義型別
Subject subject = SecurityUtils.getSubject();
在userRealm.java 中的doGetAuthenticationInfo方法中
if(type=="weixing"){
//微信免密碼登錄的邏輯
}else{
//密碼賬號的邏輯
}
感覺要比多個realm省事很多,而且不要去配置啥shiroconfig原有的系統組態檔
大家感覺這樣的方案可行嗎?
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/26023.html
標籤:Java EE
