Skip to content

Commit 686044b

Browse files
committed
增加userStr字段,避免反序列化丢失信息
1 parent f618290 commit 686044b

File tree

1 file changed

+28
-7
lines changed

1 file changed

+28
-7
lines changed

src/main/java/org/nlpcn/jcoder/domain/Token.java

Lines changed: 28 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
package org.nlpcn.jcoder.domain;
22

3+
import com.alibaba.fastjson.JSON;
4+
import com.alibaba.fastjson.annotation.JSONField;
5+
36
import java.io.Serializable;
47
import java.util.Date;
58
import java.util.HashSet;
@@ -17,7 +20,10 @@ public class Token implements Serializable {
1720

1821
private String token;
1922

20-
private User user;
23+
private String userStr;
24+
25+
@JSONField(serialize = false, deserialize = false)
26+
private User user;
2127

2228
private long expiration = 20 * 60 * 1000L;
2329

@@ -40,13 +46,28 @@ public void setToken(String token) {
4046
this.token = token;
4147
}
4248

43-
public User getUser() {
44-
return user;
45-
}
49+
public String getUserStr() {
50+
return userStr;
51+
}
4652

47-
public void setUser(User user) {
48-
this.user = user;
49-
}
53+
public void setUserStr(String userStr) {
54+
this.userStr = userStr;
55+
}
56+
57+
public User getUser() {
58+
return getUser(User.class);
59+
}
60+
61+
public <T extends User> T getUser(Class<T> clazz) {
62+
if (user == null) {
63+
user = JSON.parseObject(userStr, clazz);
64+
}
65+
return clazz.cast(user);
66+
}
67+
68+
public void setUser(User user) {
69+
userStr = JSON.toJSONString(this.user = user);
70+
}
5071

5172
public Date getExpirationTime() {
5273
return expirationTime;

0 commit comments

Comments
 (0)