SSOLoginHelper.java 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package com.fdkankan.common.user;
  2. import com.fdkankan.common.constant.LoginType;
  3. import com.fdkankan.common.util.JwtUtil;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.stereotype.Component;
  6. @Component
  7. public class SSOLoginHelper {
  8. @Autowired
  9. private SSOLoginStore ssoLoginStore;
  10. public SSOUser loginCheck(String token) {
  11. if (token != null && token.trim().length() > 0) {
  12. String username = JwtUtil.getUsername(token);
  13. SSOUser ssoUser = ssoLoginStore.get(username);
  14. if (ssoUser != null) {
  15. return ssoUser;
  16. }
  17. }
  18. return null;
  19. }
  20. public com.fdkankan.common.model.SSOUser loginCheckV3(String token) {
  21. if (token != null && token.trim().length() > 0) {
  22. com.fdkankan.common.model.SSOUser ssoUser = ssoLoginStore.getV3(token);
  23. if (ssoUser != null) {
  24. return ssoUser;
  25. }
  26. }
  27. return null;
  28. }
  29. public String login(String loginType,String userName) {
  30. return this.login(loginType,userName,null, null);
  31. }
  32. public String login(String loginType,String userName,Integer time) {
  33. return this.login(loginType,userName,time, null);
  34. }
  35. public String login(SSOUser ssoUser) {
  36. String loginType = LoginType.USER.code();
  37. String userName = ssoUser.getUserName();
  38. return this.login(loginType,userName,null, ssoUser);
  39. }
  40. public String login(SSOUser ssoUser,Integer time) {
  41. String loginType = LoginType.USER.code();
  42. String userName = ssoUser.getUserName();
  43. return this.login(loginType,userName,time, ssoUser);
  44. }
  45. /**
  46. * @param loginType 登录类型
  47. * @param userName 登录用户名
  48. * @param time 过期时间,时间单位为秒,默认为 6小时 21600
  49. * @param ssoUser sooUser
  50. */
  51. public String login(String loginType,String userName,Integer time,SSOUser ssoUser) {
  52. String token = JwtUtil.createJWT(-1, userName,loginType);
  53. ssoLoginStore.put(loginType,userName,token,time, ssoUser);
  54. return token;
  55. }
  56. public void logout(String token) {
  57. String username = JwtUtil.getUsername(token);
  58. String loginType = JwtUtil.getLoginType(token);
  59. this.logout(loginType,username);
  60. }
  61. public void logout(String loginType,String userName) {
  62. ssoLoginStore.remove(loginType,userName);
  63. }
  64. }