import { PromiseType } from '../base'; import { Token, User } from '../security'; import { Service } from './base'; import { SessionRequest } from './session'; /** * 令牌池 */ export declare class TokenPool { /** * 系统当前的令牌 */ static tokens: { [index: string]: Token; }; /** * 当前请求 */ static currentRequest: SessionRequest; /** * 获取令牌 * @param req 请求 */ private static getToken; /** * 设置令牌 * @param req 请求 */ private static setToken; /** * 重置Sesion时间 * @param req 请求 */ static resetSessionTime(req: SessionRequest): void; /** * 清除令牌 * @param req 请求 */ private static clearToken; /** * 获取当前令牌 */ static getCurrentToken(): Token; /** * 获取当前用户 */ static getCurrentUser(): User | undefined; /** * 启动会话,如果已经启动则重置Session时间 */ static resetSession(req: SessionRequest): Token; /** * 登入 * @param user 用户 */ static login(user: User): void; /** * 登出 */ static logout(): void; /** * 请求 * @param transName 事务名称 * @param req 请求 * @param requestMethod 请求方法 */ static request(transName: string, req: SessionRequest, requestMethod: () => any): Promise; } /** * 普通用户 */ export interface CommonUser extends User { /** * 登录名称 */ loginName?: string; /** * 密码 */ password?: string; } /** * 权限检查 */ export declare function authorityCheck(checkFunc: (user: User) => void): Promise; export declare abstract class SecurityService extends Service { /** * 注销前的处理 */ onLogout?: (token: Token) => void; /** * 注销 */ logout?: (() => void) | undefined; /** * 获取用户 */ getUser?: (() => User | undefined) | undefined; } export declare abstract class UserPassSecurityService extends SecurityService { /** * 查找用户 */ findUser?: (loginName: string, password?: string) => PromiseType; /** * 注销前的处理 */ onLogin?: (token: Token) => void; /** * 登录 */ login?: ((loginName: string, password?: string | undefined) => Promise) | undefined; } export declare class SimpleSecurityService extends UserPassSecurityService { users?: CommonUser[]; findUser?: ((loginName: string, password?: string | undefined) => Promise) | undefined; }