类 BaseAuthHandler<U extends BaseUser>

java.lang.Object
cool.scx.ext.auth.BaseAuthHandler<U>

public abstract class BaseAuthHandler<U extends BaseUser> extends Object

Abstract BaseAuthHandler class.

版本:
1.15.4
作者:
scx567888
  • 字段详细资料

    • SCX_SESSION_CACHE_PATH

      public static final Path SCX_SESSION_CACHE_PATH
      SESSION_CACHE 存储路径 默认为 AppRoot 下的 scx-session.cache 文件
    • SCX_AUTH_TOKEN_KEY

      public static final String SCX_AUTH_TOKEN_KEY
      获取 token 的标识字段
      另请参阅:
    • SCX_AUTH_DEVICE_KEY

      public static final String SCX_AUTH_DEVICE_KEY
      获取 设备 的标识字段
      另请参阅:
    • LOGGED_IN_CLIENT_TABLE

      protected final LoggedInClientTable LOGGED_IN_CLIENT_TABLE
      存储所有的登录的客户端
    • THIRD_PARTY_LOGIN_HANDLER_MAP

      protected final Map<String,ThirdPartyLoginHandler<?>> THIRD_PARTY_LOGIN_HANDLER_MAP
      第三方登录 login handler 映射
    • userService

      protected final cool.scx.core.base.BaseModelService<U extends BaseUser> userService
      用户
  • 构造器详细资料

    • BaseAuthHandler

      protected BaseAuthHandler(cool.scx.core.base.BaseModelService<U> userService)

      Constructor for BaseAuthHandler.

      参数:
      userService - a
  • 方法详细资料

    • getCurrentUser

      public U getCurrentUser()
      a
      返回:
      a
    • getCurrentUser

      public U getCurrentUser(io.vertx.ext.web.RoutingContext ctx)
      a
      参数:
      ctx - a
      返回:
      a
    • getCurrentUserByToken

      public U getCurrentUserByToken(String token)
      a
      参数:
      token - a
      返回:
      a
    • login

      public String login(String username, String password, io.vertx.ext.web.RoutingContext ctx)
      a
      参数:
      username - a
      password - a
      ctx - a
      返回:
      a
    • tryLogin

      public U tryLogin(String username, String password) throws UnknownUserException, WrongPasswordException
      尝试使用 用户名和密码进行登录
      参数:
      username - 用户名
      password - 密码
      返回:
      a
      抛出:
      UnknownUserException - if any.
      WrongPasswordException - if any.
    • signup

      public abstract U signup(String username, String password)
      a
      参数:
      username - a
      password - a
      返回:
      a
    • logout

      public boolean logout(io.vertx.ext.web.RoutingContext context)
      a
      参数:
      context - a
      返回:
      a
    • changePasswordByAdmin

      public U changePasswordByAdmin(String newPassword, Long id)
      通过管理员修改用户密码 (不需要原密码)
      参数:
      newPassword - 新密码
      id - id
      返回:
      user
    • changePasswordBySelf

      public U changePasswordBySelf(String newPassword, String oldPassword)
      修改当前登录用户的 密码
      参数:
      newPassword - 新密码
      oldPassword - 用来校验的密码
      返回:
      a
    • changeUsernameBySelf

      public U changeUsernameBySelf(String newUsername, String password)
      修改当前登录用户的 用户名
      参数:
      newUsername - 新用户名
      password - 用来校验的密码
      返回:
      a
    • checkNeedChangeUserByID

      public U checkNeedChangeUserByID(Long id)
      根据 id 获取 用户 和 get 的区别是返回值永远不为空且只包含 [id, password, username] 三个字段 如果对应 id 的用户未找到则抛出移除
      参数:
      id - id
      返回:
      r
    • getPerms

      public final Perms getPerms()
      a
      返回:
      a
    • getPerms

      public abstract Perms getPerms(U user)
      根据用户获取 权限串
      参数:
      user - 用户 (这里只会使用用户的唯一标识 所以其他的字段可以为空)
      返回:
      权限字符串集合
    • signupByThirdParty

      public abstract U signupByThirdParty(String uniqueID, String accessToken, String accountType)
      a
      参数:
      uniqueID - a
      accessToken - a
      accountType - a
      返回:
      a
    • loginByThirdParty

      public String loginByThirdParty(String uniqueID, String accessToken, String accountType, io.vertx.ext.web.RoutingContext ctx)
      a
      参数:
      uniqueID - a
      accessToken - a
      accountType - a
      ctx - a
      返回:
      a
    • findThirdPartyLoginHandler

      public final ThirdPartyLoginHandler<U> findThirdPartyLoginHandler(String type)
      根据名称查找第三方的 loginHandler
      参数:
      type - 类型
      返回:
      handler
    • loggedInClientTable

      public final LoggedInClientTable loggedInClientTable()

      alreadyLoginClientMap.

      返回:
      a
    • addThirdPartyLoginHandler

      public final void addThirdPartyLoginHandler(String type, ThirdPartyLoginHandler<?> thirdPartyLoginHandler)
      添加一个 第三方的 loginHandler
      参数:
      type - 名称
      thirdPartyLoginHandler - handler
    • hasPerm

      public abstract boolean hasPerm(String permString)
      查看当前登录用户是否有对应的权限 此处查看的一般为通用权限
      参数:
      permString - 权限串
      返回:
      是否拥有这个权限
    • bindWebSocketByToken

      public void bindWebSocketByToken(WSMessage<?> wsParam)
      根据 token 绑定 websocket
      参数:
      wsParam - a Object object
    • getCurrentClient

      public LoggedInClient getCurrentClient()
      a
      返回:
      a
    • getCurrentUserByWebSocketID

      public U getCurrentUserByWebSocketID(String webSocketID)

      getLoginUserByWebSocketID.

      参数:
      webSocketID - a String object
      返回:
      a T object
    • getCurrentUserByWebSocket

      public U getCurrentUserByWebSocket(io.vertx.core.http.ServerWebSocket socket)

      getLoginUserByWebSocketID.

      参数:
      socket - a ServerWebSocket object
      返回:
      a T object
    • readSessionFromFile

      public void readSessionFromFile()
      从文件中读取 LoginItem
    • writeSessionToFile

      public void writeSessionToFile()
      写入 LoginItem 到文件中
    • checkNewUsername

      public String checkNewUsername(String username, Long id)
      检查新用户名 (验空和是否重复)
      参数:
      username - username
      id - 用户名 (用来校验用户名是否唯一)
      返回:
      去除首位空格后的 密码
    • checkNewUsername

      public String checkNewUsername(String username)
      检查新用户名 (验空和是否重复)
      参数:
      username - username
      返回:
      去除首位空格后的 密码