mitreid-connect
静的公開メンバ関数 | 静的非公開変数類 | 全メンバ一覧
org.mitre.openid.connect.util.IdTokenHashUtils クラス
org.mitre.openid.connect.util.IdTokenHashUtils 連携図
Collaboration graph

静的公開メンバ関数

static Base64URL getCodeHash (JWSAlgorithm signingAlg, String code)
 
static Base64URL getAccessTokenHash (JWSAlgorithm signingAlg, OAuth2AccessTokenEntity token)
 
static Base64URL getHash (JWSAlgorithm signingAlg, byte[] bytes)
 

静的非公開変数類

static final Logger logger = LoggerFactory.getLogger(IdTokenHashUtils.class)
 

詳解

Utility class for generating hashes for access tokens and authorization codes to be included in an ID Token.

著者
Amanda Anganes

関数詳解

◆ getAccessTokenHash()

static Base64URL org.mitre.openid.connect.util.IdTokenHashUtils.getAccessTokenHash ( JWSAlgorithm  signingAlg,
OAuth2AccessTokenEntity  token 
)
inlinestatic

Compute the SHA hash of a token

引数
signingAlg
token
戻り値
64  {
65 
66  byte[] tokenBytes = token.getJwt().serialize().getBytes();
67 
68  return getHash(signingAlg, tokenBytes);
69 
70  }
static Base64URL getHash(JWSAlgorithm signingAlg, byte[] bytes)
Definition: IdTokenHashUtils.java:72

◆ getCodeHash()

static Base64URL org.mitre.openid.connect.util.IdTokenHashUtils.getCodeHash ( JWSAlgorithm  signingAlg,
String  code 
)
inlinestatic

Compute the SHA hash of an authorization code

引数
signingAlg
code
戻り値
53  {
54  return getHash(signingAlg, code.getBytes());
55  }
static Base64URL getHash(JWSAlgorithm signingAlg, byte[] bytes)
Definition: IdTokenHashUtils.java:72

◆ getHash()

static Base64URL org.mitre.openid.connect.util.IdTokenHashUtils.getHash ( JWSAlgorithm  signingAlg,
byte []  bytes 
)
inlinestatic
72  {
73 
74  //Switch based on the given signing algorithm - use SHA-xxx with the same 'xxx' bitnumber
75  //as the JWSAlgorithm to hash the token.
76  String hashAlg = null;
77 
78  if (signingAlg.equals(JWSAlgorithm.HS256) || signingAlg.equals(JWSAlgorithm.ES256) || signingAlg.equals(JWSAlgorithm.RS256) || signingAlg.equals(JWSAlgorithm.PS256)) {
79  hashAlg = "SHA-256";
80  }
81 
82  else if (signingAlg.equals(JWSAlgorithm.ES384) || signingAlg.equals(JWSAlgorithm.HS384) || signingAlg.equals(JWSAlgorithm.RS384) || signingAlg.equals(JWSAlgorithm.PS384)) {
83  hashAlg = "SHA-384";
84  }
85 
86  else if (signingAlg.equals(JWSAlgorithm.ES512) || signingAlg.equals(JWSAlgorithm.HS512) || signingAlg.equals(JWSAlgorithm.RS512) || signingAlg.equals(JWSAlgorithm.PS512)) {
87  hashAlg = "SHA-512";
88  }
89 
90  if (hashAlg != null) {
91 
92  try {
93  MessageDigest hasher = MessageDigest.getInstance(hashAlg);
94  hasher.reset();
95  hasher.update(bytes);
96 
97  byte[] hashBytes = hasher.digest();
98  byte[] hashBytesLeftHalf = Arrays.copyOf(hashBytes, hashBytes.length / 2);
99  Base64URL encodedHash = Base64URL.encode(hashBytesLeftHalf);
100 
101  return encodedHash;
102 
103  } catch (NoSuchAlgorithmException e) {
104 
105  logger.error("No such algorithm error: ", e);
106 
107  }
108 
109  }
110 
111  return null;
112  }
static final Logger logger
Definition: IdTokenHashUtils.java:44

メンバ詳解

◆ logger

final Logger org.mitre.openid.connect.util.IdTokenHashUtils.logger = LoggerFactory.getLogger(IdTokenHashUtils.class)
staticprivate

Logger for this class


このクラス詳解は次のファイルから抽出されました: