All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.alogic.auth.Principal Maven / Gradle / Ivy

package com.alogic.auth;

import java.util.List;

import com.alogic.load.Loadable;
import com.anysoft.util.JsonSerializer;

/**
 * Principal
 * 
 * 代表当前用户
 * 
 * @author yyduan
 * @since 1.6.10.10
 * 
 * @version 1.6.11.1 [20171215 duanyy] 
* - 增加获取登录id的方法
* * @version 1.6.11.13 [20180125 duanyy]
* - 不再提供基于Principal的Store实现
* * @version 1.6.11.59 [20180911 duanyy]
* - 增加获取appId的接口
*/ public interface Principal extends Loadable,Constants,JsonSerializer{ /** * 获取id * *

* Principal的id可以是会话id,也可以是其他的全局性的id,比如说,在sso场景中的token. * @return id */ public String getId(); /** * 获取登录用户的id * @return 登录用户的id */ public String getLoginId(); /** * 获取登录时间 * @return 登录时间,毫秒数 */ public String getLoginTime(); /** * 获取登录ip * @return 登录ip,客户端地址 */ public String getLoginIp(); /** * 获取所属的AppId * @return AppId */ public String getAppId(); /** * 设置属性 * *

用来设置Principal的扩展属性,当该属性已经存在时,如果overwrite为true,则覆盖,反之则忽略 * * @param id 属性id * @param value 属性值 * @param overwrite 是否覆盖 */ public void setProperty(String id,String value,boolean overwrite); /** * 获取属性 * *

用来获取Principal的扩展属性,如果该属性不存在,则返回dftValue. * @param id 属性id * @param dftValue 缺省值 * @return 属性值 */ public String getProperty(String id,String dftValue); /** * 清除属性 */ public void clearProperties(); /** * 获取用户的权限列表 * @return 权限列表 */ public List getPrivileges(); /** * 是否具备指定的权限 * @param privilege 权限项 * @return 如果具备该权限,返回为true,反之为false */ public boolean hasPrivilege(String privilege); /** * 增加权限列表 * @param privileges 权限列表 */ public void addPrivileges(String...privileges); /** * 清除权限列表 */ public void clearPrivileges(); /** * 复制本Principal的数据到另外一个Principal实例 * @param another 另外一个Principal实例 */ public void copyTo(Principal another); /** * 虚基类 */ public static abstract class Abstract implements Principal{ /** * 创建的时间戳 */ protected long timestamp = System.currentTimeMillis(); /** * id */ protected String id; /** * Principal是基于某个应用来生成的 */ protected String appId; public Abstract(final String id){ this.id = id; } public Abstract(final String id,final String appId){ this.id = id; this.appId = appId; } @Override public long getTimestamp() { return timestamp; } @Override public boolean isExpired() { return false; } @Override public void expire() { } @Override public String getId() { return id; } public String getAppId(){ return appId; } } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy