SSOLoginHelper.java 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. package com.fdkankan.web.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. SSOUser ssoUser = ssoLoginStore.get(token);
  13. if (ssoUser != null) {
  14. return ssoUser;
  15. }
  16. }
  17. return null;
  18. }
  19. public SSOUser getSsoUser(String token) {
  20. if (token != null && token.trim().length() > 0) {
  21. SSOUser ssoUser = ssoLoginStore.getSsoUser(token);
  22. if (ssoUser != null) {
  23. return ssoUser;
  24. }
  25. }
  26. return null;
  27. }
  28. public com.fdkankan.web.model.SSOUser loginCheckV3(String token) {
  29. if (token != null && token.trim().length() > 0) {
  30. com.fdkankan.web.model.SSOUser ssoUser = ssoLoginStore.getV3(token);
  31. if (ssoUser != null) {
  32. return ssoUser;
  33. }
  34. }
  35. return null;
  36. }
  37. public String login(String loginType,String userName) {
  38. return this.login(loginType,userName,null, null);
  39. }
  40. public String login(String loginType,String userName,Integer time) {
  41. return this.login(loginType,userName,time, null);
  42. }
  43. public String login(SSOUser ssoUser) {
  44. String loginType = LoginType.USER.code();
  45. String userName = ssoUser.getUserName();
  46. return this.login(loginType,userName,null, ssoUser);
  47. }
  48. public String login(SSOUser ssoUser,Integer time) {
  49. String loginType = LoginType.USER.code();
  50. String userName = ssoUser.getUserName();
  51. return this.login(loginType,userName,time, ssoUser);
  52. }
  53. /**
  54. * @param loginType 登录类型
  55. * @param userName 登录用户名
  56. * @param time 过期时间,时间单位为秒,默认为 6小时 21600
  57. * @param ssoUser sooUser
  58. */
  59. public String login(String loginType,String userName,Integer time,
  60. SSOUser ssoUser) {
  61. String token = JwtUtil.createJWT(-1, userName,loginType);
  62. ssoLoginStore.put(loginType,userName,token,time, ssoUser);
  63. return token;
  64. }
  65. public void logout(String token) {
  66. String username = JwtUtil.getUsername(token);
  67. String loginType = JwtUtil.getLoginType(token);
  68. this.logout(loginType,username);
  69. }
  70. public void logout(String loginType,String userName) {
  71. ssoLoginStore.remove(loginType,userName);
  72. }
  73. public void loginV3(String token, com.fdkankan.web.model.SSOUser ssoUser) {
  74. ssoLoginStore.putV3(token, ssoUser);
  75. }
  76. }