【发布时间】:2020-03-15 00:48:34
【问题描述】:
我在这里处理 JWT 并设置自定义字段。 所有这些自定义字段都在枚举中描述:
public enum JwtFields {
userId,
manyOtherCustomFieldsBellow,
blaBlaBla
}
因此,每当我创建令牌而不是为键传递字符串时,我都会使用枚举,因为它更快、更安全。
Claims claims = Jwts.claims().setSubject(userId);
claims.put(JwtFields.someCustomFieldFromEnum.name(), "someValue")
现在,一旦我检查收到的令牌是否有效并且所有必要的自定义字段都存在,我想将其反序列化为某个 TokenDecoded 类并将其附加到请求有效负载,所以每当我处理请求时,我将包含来自 JWT 令牌的所有值和字段。
但是,反序列化类几乎包含枚举中的所有字段,如果明天我将向枚举添加新字段,我还必须手动更新我的 TokenDecoded 类以包含该新自定义字段。
问题:
我怎样才能使这个TokenDecoded 类基于枚举字段,所以如果我向枚举添加一个新字段,它将自动出现在TokenDecoded 中?是否涉及反射?还是可以更简单的实现?
【问题讨论】:
-
@Jan Rieke 感谢您编辑我可怕的错别字,我现在很尴尬:D
标签: java reflection enums jwt