- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
对于我正在从事的项目,我需要使用库提供的 Spring Security 和 JSON Webtokens io.jsonwebtoken (jjwt) .我需要添加到生成的 token 中的声明之一是以下实体(已简化以说明问题):
@Entity
public class MyEntity {
private String name;
private LocalDateTime ldt;
}
这有效,但生成的 webtoken 序列化如下:
{
"sub": "testuser@mydomain.com",
"exp": 1523659655,
"entity": {
"name": testname,
"ldt": {
"hour": 0,
"minute": 37,
"dayOfMonth": 12,
"dayOfWeek": "THURSDAY",
"dayOfYear": 102,
"year": 2018,
"month": "APRIL",
"monthValue": 4,
"second": 38,
"nano": 569000000,
"chronology": {
"calendarType": "iso8601",
"id": "ISO"
}
}
}
}
这可能看起来不是问题,但实际上当稍后我需要将它再次映射到 MyEntity 的实例时,它就是一个问题。在网上阅读了一些内容后,我认为我需要更改 ObjectMapper 的配置,以更改配置选项(将 WRITE_DATES_AS_TIMESTAMPS
标志切换为 false)。但是,我无法更改 jjwt 使用的 ObjectMapper 的配置,因为它是这样构造的(jjwt 的来源):
public class DefaultJwtBuilder implements JwtBuilder {
private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
...
}
我在网上找到的另一个选择是将以下行放入我的 application.properties 文件中:
spring.jackson.serialization.WRITE_DATES_AS_TIMESTAMPS = false
但无济于事,jjwt 使用的 ObjectMapper 似乎忽略了这些属性。
我会做什么来实现我的目标?
最佳答案
Jjwt 文档指出(从 0.10.0 版开始)您可以使用特定的编译依赖项注入(inject)您自己的 ObjectMapper
并按如下方式实现注入(inject):
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-jackson</artifactId>
<version>0.10.5</version>
<scope>compile</scope> <!-- Not runtime -->
</dependency>
...然后将映射器添加到JwtBuilder
:
ObjectMapper objectMapper = getMyObjectMapper(); //implement me
String jws = Jwts.builder()
.serializeToJsonWith(new JacksonSerializer(objectMapper))
// ... etc ...
关于java - JJWT/Jackson 改变了使用的 ObjectMapper,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49812280/
我继承了一个在 POM.xml 中有这个的 java 项目: 0.11.1 // from https://github.com/jwtk/jjwt#maven io.jsonw
好的,我在生成 JWT 时向有效负载添加了几个自定义声明,并且我可以在我的前端 (javascript) 中很好地提取它们。然后,我让我的 javascript 向微服务发送一个 ajax 调用,并将
问题是我的应用程序在 token 过期时抛出异常,而我无法捕获该异常。我想捕获那个异常并做另一件事。尝试在 catch block 上注释异常语句但没有任何进展。 异常(exception): **
使用jjwt库, String compactJws = Jwts.builder().setSubject("Joe").signWith(SignatureAlgorithm.HS512, ke
我是 JWT 新手,想知道当用户退出应用程序时是否可以在服务器端使 JWT 无效/作废(我也想知道这样做是否有意义!) 。想法是: 用户点击应用中的退出链接 应用程序调用 POST https://a
我使用lib JJWT 0.9.0来生成Token。我已经编写了日志代码段生成 token ,并且我看到函数compact()运行非常慢(664 -151 = 513(ms))。如何使函数compac
我正在使用 JJWT 库生成我的 JWT token 。我按如下方式生成我的 token 。我使用虚拟值作为我的 key 。 我们可以假设 jwt.security.key=security-key
对于我正在从事的项目,我需要使用库提供的 Spring Security 和 JSON Webtokens io.jsonwebtoken (jjwt) .我需要添加到生成的 token 中的声明之一
我已成功设置 JJWT 以在一系列 Web 服务的身份验证过程中使用。问题在于它们是在一个 Web 服务中创建的,但跨多个服务进行身份验证。如何成功、安全地使用签名,同时确保我的所有 Web 服务使用
我在使用 JJWT 库创建 JWT 时遇到问题:https://github.com/jwtk/jjwt 我按照说明进行操作并想出了这个简单的类: import io.jsonwebtoken.Cla
我一定错过了什么。我正在使用 JJWT 库来创建 JWT。根据声明中的数据集,从库中创建的 JWT 不一致。我的代码: Date now = new Date(); Date expiration =
我有一个由某些服务生成的 JWT token ,然后在我的 Java 应用程序上进行验证。 问题在于,由于 Base64 解码错误,JJWT 库无法解析 JSON header 。 header Ba
我有一个小问题。我一直在尝试使用不同的库来生成 json token ,现在我正在使用 Stormpath 中的 JJWT。他们有很好解释的教程。但我的问题是,当我尝试在“public static
我尝试创建 JWT token final String jws = Jwts.builder() .claim("rainId", rainId.toString())
Auth0提供两个 JWT 库,一个用于 Node:node-jsonwebtoken ,还有一个用于 Java:java-jwt .它turns out那java-jwt不支持公钥/私钥对。 但是,
我的网站将 JWT(内置 php)发送到我用 Java 开发的应用程序。 JWT 在名为 DATI 的自定义字段中包含一个 JSON 字符串。我使用 JJWT 库来解密 DATI 字段中包含的字符串:
我有以下测试 key ,我正在使用 JJWT 对其执行 JWT 验证: -----BEGIN RSA PRIVATE KEY----- MIIJKAIBAAKCAgEAyzAnJJCV/ihJGhut
我正在验证来自 Azure 的 JWT token 并使用 JJWT。我从与我的 tid 相关的键文档中检索模数和指数,它们是字段分别为n和e。验证失败并出现错误:JWT 签名与本地计算的签名不匹配。
我正在验证来自 Azure 的 JWT token 并使用 JJWT。我从与我的 tid 相关的键文档中检索模数和指数,它们是字段分别为n和e。验证失败并出现错误:JWT 签名与本地计算的签名不匹配。
我在 servlet 上使用 jjwt Java 库在服务器端生成 jwt,下面的代码片段直接来自 jjwt GitHub 页面 https://github.com/jwtk/jjwt生成并打印出这
我是一名优秀的程序员,十分优秀!