关于shiro无密码登录,帮忙看下这方案可行吗?

fanqieo 2020-08-07 03:28:48
到公司后接手了一套系统是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原有的系统配置文件
大家感觉这样的方案可行吗?
...全文
73 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧