好的,我在生成 JWT 时向有效负载添加了几个自定义声明,我可以在我的前端 (javascript) 中将它们拉出来就好了。然后我让我的 javascript 向一个微服务发送一个 ajax 调用,它连同它一起传递 JWT。我想从微服务中的 JWT 中获取我的自定义声明。我正在做以下事情:
Claims claims = Jwts.parser().setSigningKey(Vars.SECRET_KEY).parseClaimsJws(token).getBody();
User user = claims.get("customuser", User.class);
Run Code Online (Sandbox Code Playgroud)
它抛出一个异常。
io.jsonwebtoken.RequiredTypeException: Expected value to be of type: class net.netdatacorp.netdauth.model.User, but was class java.util.LinkedHashMap
at io.jsonwebtoken.impl.DefaultClaims.get(DefaultClaims.java:128)
Run Code Online (Sandbox Code Playgroud)
以下是我的自定义声明在前端 JWT 检查器中的数据显示方式。
{
jti: "83bffbad-7d36-4370-9332-21a84f2a3dce",
iat: 1498241526,
sub: "test",
iss: "www.test.net",
customuser: {
userId: 1,
userCd: "TMM",
firstNm: "Testy",
lastNm: "McTesty",
userNm: "test",
emailAddress: "jacob@test.net",
active: true,
createdDt: 1491355712000,
createdByUserId: 0,
lastUpdateDt: 1498199278000,
lastUpdateByUserId: 0,
lastLoginDt: 1484928016000
}
}
Run Code Online (Sandbox Code Playgroud)
我缺少什么才能拉出我的自定义声明?
好的,我正在尝试通过 JPA(休眠)将 SpringBoot 应用程序连接到旧的 AS/400 DB 数据库。然而,表名有一个“。” (期间)在他们。例如:LE.ONFP 是表名。然而,Hibernate 正在将句点转换为下划线,这会导致错误,因为没有名为“le_onfp”的表。
@Entity
@Table(name = "\"LE.OFNP\"", schema = "QS36F")
Run Code Online (Sandbox Code Playgroud)
这是我在实体类开头的注释。
我正在从我无法控制的外部 Web 服务检索 XML 字符串。有些数据包含空格<data> I have leading white space</data>。如何修剪 XML 字符串中每个元素的空格?