TicketUtil.java 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. package jnpf.util;
  2. import cn.dev33.satoken.SaManager;
  3. import cn.dev33.satoken.temp.SaTempUtil;
  4. import cn.dev33.satoken.util.SaTokenConsts;
  5. import org.springframework.stereotype.Component;
  6. /**
  7. *
  8. * @author JNPF开发平台组
  9. * @copyright 引迈信息技术有限公司
  10. */
  11. @Component
  12. public class TicketUtil {
  13. /**
  14. * 创建临时TOKEN
  15. * @param value 值
  16. * @param timeout 有效时间, 秒
  17. * @return
  18. */
  19. public static String createTicket(Object value, long timeout){
  20. return SaTempUtil.createToken(value, timeout);
  21. }
  22. /**
  23. * 获取临时TOKEN内的数据
  24. * @see #createTicket(Object, long)
  25. * @param ticket 票据
  26. * @return
  27. * @param <T>
  28. */
  29. public static <T> T parseTicket(String ticket){
  30. return (T) SaTempUtil.parseToken(ticket);
  31. }
  32. /**
  33. * 移除临时Token
  34. * @param ticket
  35. */
  36. public static void deleteTicket(String ticket){
  37. SaTempUtil.deleteToken(ticket);
  38. }
  39. /**
  40. * 更新Ticket内的内容
  41. * @see #createTicket(Object, long)
  42. * @param ticket 票据
  43. * @param value 新值
  44. * @param timeout 超时时间, 秒, 可空为不更新
  45. */
  46. public static void updateTicket(String ticket, Object value, Long timeout){
  47. Object obj = parseTicket(ticket);
  48. if(obj == null) return;
  49. String key = getTicketKey(ticket);
  50. if(timeout != null){
  51. SaManager.getSaTokenDao().setObject(key, value, timeout);
  52. }else{
  53. SaManager.getSaTokenDao().updateObject(key, value);
  54. }
  55. }
  56. private static String getTicketKey(String ticket){
  57. return SaManager.getSaTempTemplate().splicingTempTokenSaveKey(ticket);
  58. }
  59. }