Я читал обзор jjwt библиотеки:jwt: Почему алгоритм подписи не нужен при проверке токена JWT?
Построение маркера осуществляется следующим образом:
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import io.jsonwebtoken.impl.crypto.MacProvider;
import java.security.Key;
// We need a signing key, so we'll create one just for this example. Usually
// the key would be read from your application configuration instead.
Key key = MacProvider.generateKey();
String compactJws = Jwts.builder()
.setSubject("Joe")
.signWith(SignatureAlgorithm.HS512, key)
.compact();
И токен проверяется как:
try {
Jwts.parser().setSigningKey(key).parseClaimsJws(compactJws);
//OK, we can trust this JWT
} catch (SignatureException e) {
//don't trust the JWT!
}
SignatureAlgorithm.HS512
не используется на втором фрагменте. Как это можно сделать? Или это не нужно?
Но разве вам не нужен алгоритм для декодирования этой первой части? –
№ Заголовок (первая часть) и полезная нагрузка (вторая часть) кодируются base64url. Алгоритм подписи необходим только для проверки подписи (третьей части) – pedrofb
ok Я предполагаю, что я должен внимательно ознакомиться с документами RFC. Спасибо –