Advertisement

Shiro login single user

阅读量:

存在一种应用场景,要求两个地点同时使用同一账号进行登录操作,此时需将率先完成登录的用户所对应的会话信息予以清除。

流程分析

  1. 在用户登录过程中,首先需核查该账号是否在其他终端已存在登录状态。
  2. 若检测到未登录状态,则允许用户完成当前的登录流程。
  3. 若发现该账号已在其他设备上登录,则定位对应的会话信息,并在该会话中添加特定标识。
  4. 当原先已登录的用户再次尝试操作时,系统应检查其会话是否存在标记,若存在则清除相关会话,并向用户反馈相应的提示信息。

自定义登录验证

复制代码
  
    
 /** * 自定义realm,用于用户登录的验证和授权
    
  */
    
 public class MyRealm extends AuthorizingRealm {
    
  
    
 	private static final Logger LOG = LoggerFactory.getLogger(MyRealm.class);
    
 	@Autowired
    
 	private UserService userService;
    
  
    
  
    
 	/** * 用户授权方法,在调用 hasRole hasRoles hasPermission hasPermission

全部评论 (0)

还没有任何评论哟~