История изменений
Исправление
Legioner,
(текущая версия)
:
Эквивалентный код:
return Optional.ofNullable(jws.getKeyIdHeaderValue())
.map(keyId ->
Optional.ofNullable(store.get(keyId))
.orElseThrow(() -> new TokenUnsignedException("unknown or expired kid: " + keyId))
).orElseThrow(() -> new TokenCorruptedException("no kid header"));
Если не кидать разные эксепшны, можно записать проще:
return Optional.ofNullable(jws.getKeyIdHeaderValue())
.flatMap(keyId -> Optional.ofNullable(store.get(keyId)))
.orElseThrow(() -> new TokenCorruptedException("no kid header"));
На мой взгляд это всё - усложнение кода на ровном месте. Пиши простой и понятный код, сравнивая с null-ами (или делай другой дизайн API возвращая Optional из своих методов).
Исходная версия
Legioner,
:
Эквивалентный код:
return Optional.ofNullable(jws.getKeyIdHeaderValue())
.map(keyId ->
Optional.ofNullable(store.get(keyId))
.orElseThrow(() -> new TokenUnsignedException("unknown or expired kid: " + keyId))
).orElseThrow(() -> new TokenCorruptedException("no kid header"));
Если не кидать разные эксепшны, можно записать проще:
return Optional.ofNullable(jws.getKeyIdHeaderValue())
.flatMap(keyId -> Optional.ofNullable(store.get(keyId)))
.orElseThrow(() -> new TokenCorruptedException("no kid header"));