Я пытаюсь установить кучу претензий, многие из которых содержат нулевые значения. Эти свойства должны существовать и необходимы для того, чтобы пользователь не был отклонен в клиентском приложении, даже если он нуль. Несмотря на это, внутренние сериализованные объекты содержат нулевые свойства. < /P>
Вот как я их добавляю, и решение, которое я пытался реализовать, то есть настройка объекта и использовать его в jwt Builder.public String generateTokenFromJwtUserDetails(JwtUserDetails userDetails) {
Date now = new Date();
Date expiryDate = new Date(now.getTime() + jwtExpiration);
Map claims = new HashMap();
claims.put("name", userDetails.getName()); // null, will not appear in jwt
claims.put("id", userDetails.getId()); // not null, appears
claims.put("tenant", userDetails.getTenant()); // contains null values that do end up in jwt
// rest of claims...
// here I tried to set serialization inclusion in a custom object mapper, doesn't work
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setSerializationInclusion(JsonInclude.Include.ALWAYS);
// I also tried this, but won't work either
//objectMapper.enable(SerializationFeature.WRITE_NULL_MAP_VALUES);
try{
return Jwts.builder()
.json(new JacksonSerializer(objectMapper))
.claims(claims)
.subject(userDetails.getUsername())
.issuedAt(now)
.expiration(expiryDate)
.signWith(getSignInKey())
.issuer(jwtIssuer)
.compact();
}catch(Exception e){ // ...
}
< /code>
Дальнейшее разъяснение: < /p>
Я также включаю сущности в мой jwt, эти сущности сериализуются Джексоном со всеми их полями (поэтому у меня есть вложенные объекты с нулевыми ценностями, но это внешний JWT, который не принимает их). Например: < /li>
< /ol>
{
"id": "ibn12u3bio412i",
"tenant": {
"deletedOn": null,
}
}
< /code>
Hashmap действительно содержит все ключи и значения, даже если они Null.>
Подробнее здесь: https://stackoverflow.com/questions/790 ... wt-jackson
Как добавить NULL претензии в JWT Token в JJWT (Джексон) ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1759239328
Anonymous
Я пытаюсь установить кучу претензий, многие из которых содержат нулевые значения. Эти свойства должны существовать и необходимы для того, чтобы пользователь не был отклонен в клиентском приложении, даже если он нуль. Несмотря на это, внутренние сериализованные объекты содержат нулевые свойства. < /P>
Вот как я их добавляю, и решение, которое я пытался реализовать, то есть настройка объекта и использовать его в jwt Builder.public String generateTokenFromJwtUserDetails(JwtUserDetails userDetails) {
Date now = new Date();
Date expiryDate = new Date(now.getTime() + jwtExpiration);
Map claims = new HashMap();
claims.put("name", userDetails.getName()); // null, will not appear in jwt
claims.put("id", userDetails.getId()); // not null, appears
claims.put("tenant", userDetails.getTenant()); // contains null values that do end up in jwt
// rest of claims...
// here I tried to set serialization inclusion in a custom object mapper, doesn't work
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setSerializationInclusion(JsonInclude.Include.ALWAYS);
// I also tried this, but won't work either
//objectMapper.enable(SerializationFeature.WRITE_NULL_MAP_VALUES);
try{
return Jwts.builder()
.json(new JacksonSerializer(objectMapper))
.claims(claims)
.subject(userDetails.getUsername())
.issuedAt(now)
.expiration(expiryDate)
.signWith(getSignInKey())
.issuer(jwtIssuer)
.compact();
}catch(Exception e){ // ...
}
< /code>
Дальнейшее разъяснение: < /p>
Я также включаю сущности в мой jwt, эти сущности сериализуются Джексоном со всеми их полями (поэтому у меня есть вложенные объекты с нулевыми ценностями, но это внешний JWT, который не принимает их). Например: < /li>
< /ol>
{
"id": "ibn12u3bio412i",
"tenant": {
"deletedOn": null,
}
}
< /code>
Hashmap действительно содержит все ключи и значения, даже если они Null.>
Подробнее здесь: [url]https://stackoverflow.com/questions/79089383/how-to-add-null-claims-to-jwt-token-in-jjwt-jackson[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия