SSOUtil.kt 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package com.gxzc.zen.umps.util
  2. import com.baomidou.kisso.SSOHelper
  3. import com.baomidou.kisso.SSOToken
  4. import com.gxzc.zen.api.sys.model.SysUser
  5. import com.gxzc.zen.common.util.HttpUtil
  6. import javax.servlet.http.HttpServletRequest
  7. /**
  8. * SSO 工具类
  9. * @author NorthLan
  10. * @date 2018/3/15
  11. * @url https://noahlan.com
  12. */
  13. object SSOUtil {
  14. fun getCurUserId(): Long? {
  15. return getCurUserId(HttpUtil.getRequest())
  16. }
  17. fun getCurUserId(request: HttpServletRequest): Long? {
  18. val token = try {
  19. SSOHelper.attrToken<SSOToken>(request) ?: SSOHelper.getToken(request)
  20. } catch (e: Throwable) {
  21. null
  22. }
  23. return token?.uid?.toLong()
  24. }
  25. fun getCurUser(): SysUser? {
  26. return TL.get()
  27. }
  28. object TL {
  29. /**
  30. * 180324
  31. * 于MetaObjectHandler执行前 每个Controller方法拦截 暂存当前用户引用
  32. */
  33. private val CURRENT_USER_TL = ThreadLocal<SysUser>()
  34. fun set(entity: SysUser?) {
  35. CURRENT_USER_TL.set(entity)
  36. }
  37. fun clear() {
  38. CURRENT_USER_TL.remove()
  39. }
  40. fun get(): SysUser {
  41. return CURRENT_USER_TL.get()
  42. }
  43. }
  44. }