SSOLoginHelper.java 2.5 KB

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