package com.walker.web;
import java.io.Serializable;
import java.util.List;
/**
* 用户认证后的存储信息,这里定义规范,由业务实现。
*
* 1)单应用集成 walker-web-security 时需要实现。
* 2)网关微服务应用 过滤器拦截并返回该对象实现。
*
*/
public interface UserPrincipal extends Serializable {
/**
* 返回用户唯一编号,业务对应用户数据库中的id
* @return
*/
String getId();
/**
* 返回用户名称,姓名或昵称
* @return
*/
String getUserName();
/**
* 返回用户加密后的密码(MD5加密值)
* @return
*/
String getPassword();
/**
* 用户当前是否可用
* @return
*/
boolean isEnabled();
/**
* 判断token是否失效
* @param token 系统生成的唯一token
* @return
*/
boolean isTokenExpired(String token);
/**
* 用户是否被锁定
* @return
*/
boolean isAccountLocked();
/**
* 验证MD5密码是否正确
* @param encryption
* @return
*/
boolean validateMd5Password(String encryption);
/**
* 返回用户实际对象,通常是业务提供的用户信息。
* @return
*/
T getUserInfo();
/**
* 上次登录时间,格式: 20221029113601
* @return
*/
long getLastLoginTime();
/**
* 上次登录类型
* @return
*/
LoginType getLastLoginType();
/**
* 返回用户所属角色ID集合。为若依前端适配添加。
* @return
* @date 2022-11-11
*/
List getRoleIdList();
public void setRoleIdList(List roleIdList);
/**
* 是否超级管理员
* @return
* @date 2022-12-21
*/
boolean isSupervisor();
/**
* 返回用户对应某个功能的数据权限标识。
* @param menuId
* @return
* @date 2022-12-21
*/
String getDataScope(String menuId);
}