12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- package com.xet.shiro.utils;
- import com.auth0.jwt.interfaces.DecodedJWT;
- import com.xet.util.IpUtil;
- import lombok.Data;
- import lombok.experimental.Accessors;
- import org.apache.shiro.authc.HostAuthenticationToken;
- import java.util.Date;
- /**
- * Shiro JwtToken对象
- **/
- @Data
- @Accessors(chain = true)
- public class JwtToken implements HostAuthenticationToken {
- private static final long serialVersionUID = 5101247566043093405L;
- /**
- * 登录ip
- */
- private String host;
- /**
- * 登录用户名称
- */
- private String username;
- /**
- * 登录盐值
- */
- private String salt;
- /**
- * 登录token
- */
- private String token;
- /**
- * 创建时间
- */
- private Date createDate;
- /**
- * 多长时间过期,默认一小时
- */
- private long expireSecond;
- /**
- * 过期日期
- */
- private Date expireDate;
- private String principal;
- private String credentials;
- @Override
- public Object getPrincipal() {
- return token;
- }
- @Override
- public Object getCredentials() {
- return token;
- }
- public static JwtToken build(String token, String username, String salt, long expireSecond) {
- DecodedJWT decodedJwt = JwtUtil.getJwtInfo(token);
- Date createDate = decodedJwt.getIssuedAt();
- Date expireDate = decodedJwt.getExpiresAt();
- return new JwtToken()
- .setUsername(username)
- .setToken(token)
- .setHost(IpUtil.getRequestIp())
- .setSalt(salt)
- .setCreateDate(createDate)
- .setExpireSecond(expireSecond)
- .setExpireDate(expireDate);
- }
- }
|