gluu
公開メンバ関数 | 非公開メンバ関数 | 非公開変数類 | 静的非公開変数類 | 全メンバ一覧
org.xdi.oxauth.model.jws.AbstractJwsSigner クラスabstract
org.xdi.oxauth.model.jws.AbstractJwsSigner の継承関係図
Inheritance graph
org.xdi.oxauth.model.jws.AbstractJwsSigner 連携図
Collaboration graph

公開メンバ関数

 AbstractJwsSigner (SignatureAlgorithm signatureAlgorithm)
 
SignatureAlgorithm getSignatureAlgorithm ()
 
Jwt sign (Jwt jwt) throws InvalidJwtException, SignatureException
 
boolean validate (Jwt jwt)
 
boolean validateAuthorizationCode (String authorizationCode, Jwt idToken)
 
boolean validateAccessToken (String accessToken, Jwt idToken)
 
abstract String generateSignature (String signingInput) throws SignatureException
 
abstract boolean validateSignature (String signingInput, String signature) throws SignatureException
 

非公開メンバ関数

boolean validateHash (String tokenCode, String tokenHash)
 

非公開変数類

SignatureAlgorithm signatureAlgorithm
 

静的非公開変数類

static final Logger LOG = Logger.getLogger(AbstractJwsSigner.class)
 

詳解

著者
Javier Rojas Blum
バージョン
July 31, 2016

構築子と解体子

◆ AbstractJwsSigner()

org.xdi.oxauth.model.jws.AbstractJwsSigner.AbstractJwsSigner ( SignatureAlgorithm  signatureAlgorithm)
inline
32  {
34  }
SignatureAlgorithm signatureAlgorithm
Definition: AbstractJwsSigner.java:30

関数詳解

◆ generateSignature()

abstract String org.xdi.oxauth.model.jws.AbstractJwsSigner.generateSignature ( String  signingInput) throws SignatureException
abstract

◆ getSignatureAlgorithm()

SignatureAlgorithm org.xdi.oxauth.model.jws.AbstractJwsSigner.getSignatureAlgorithm ( )
inline

org.xdi.oxauth.model.jws.JwsSignerを実装しています。

37  {
38  return signatureAlgorithm;
39  }
SignatureAlgorithm signatureAlgorithm
Definition: AbstractJwsSigner.java:30

◆ sign()

Jwt org.xdi.oxauth.model.jws.AbstractJwsSigner.sign ( Jwt  jwt) throws InvalidJwtException, SignatureException
inline

org.xdi.oxauth.model.jws.JwsSignerを実装しています。

42  {
43  String signature = generateSignature(jwt.getSigningInput());
44  jwt.setEncodedSignature(signature);
45  return jwt;
46  }
abstract String generateSignature(String signingInput)

◆ validate()

boolean org.xdi.oxauth.model.jws.AbstractJwsSigner.validate ( Jwt  jwt)
inline

org.xdi.oxauth.model.jws.JwsSignerを実装しています。

49  {
50  try {
51  String signingInput = jwt.getSigningInput();
52  String signature = jwt.getEncodedSignature();
53 
54  return validateSignature(signingInput, signature);
55  } catch (InvalidJwtException e) {
56  LOG.error(e.getMessage(), e);
57  return false;
58  } catch (SignatureException e) {
59  LOG.error(e.getMessage(), e);
60  return false;
61  } catch (Exception e) {
62  LOG.error(e.getMessage(), e);
63  return false;
64  }
65  }
abstract boolean validateSignature(String signingInput, String signature)
static final Logger LOG
Definition: AbstractJwsSigner.java:28

◆ validateAccessToken()

boolean org.xdi.oxauth.model.jws.AbstractJwsSigner.validateAccessToken ( String  accessToken,
Jwt  idToken 
)
inline
71  {
72  return validateHash(accessToken, idToken.getClaims().getClaimAsString(JwtClaimName.ACCESS_TOKEN_HASH));
73  }
boolean validateHash(String tokenCode, String tokenHash)
Definition: AbstractJwsSigner.java:75

◆ validateAuthorizationCode()

boolean org.xdi.oxauth.model.jws.AbstractJwsSigner.validateAuthorizationCode ( String  authorizationCode,
Jwt  idToken 
)
inline
67  {
68  return validateHash(authorizationCode, idToken.getClaims().getClaimAsString(JwtClaimName.CODE_HASH));
69  }
boolean validateHash(String tokenCode, String tokenHash)
Definition: AbstractJwsSigner.java:75

◆ validateHash()

boolean org.xdi.oxauth.model.jws.AbstractJwsSigner.validateHash ( String  tokenCode,
String  tokenHash 
)
inlineprivate
75  {
76  boolean result = false;
77 
78  try {
79  if (signatureAlgorithm != null
80  && StringUtils.isNotBlank(tokenCode)
81  && StringUtils.isNotBlank(tokenHash)) {
82  byte[] digest = null;
83  if (signatureAlgorithm == SignatureAlgorithm.HS256 ||
84  signatureAlgorithm == SignatureAlgorithm.RS256 ||
85  signatureAlgorithm == SignatureAlgorithm.ES256) {
86  digest = JwtUtil.getMessageDigestSHA256(tokenCode);
87  } else if (signatureAlgorithm == SignatureAlgorithm.HS384 ||
88  signatureAlgorithm == SignatureAlgorithm.RS384 ||
89  signatureAlgorithm == SignatureAlgorithm.ES512) {
90  digest = JwtUtil.getMessageDigestSHA384(tokenCode);
91  } else if (signatureAlgorithm == SignatureAlgorithm.HS512 ||
92  signatureAlgorithm == SignatureAlgorithm.RS384 ||
93  signatureAlgorithm == SignatureAlgorithm.ES512) {
94  digest = JwtUtil.getMessageDigestSHA512(tokenCode);
95  }
96 
97  if (digest != null) {
98  byte[] lefMostHalf = new byte[digest.length / 2];
99  System.arraycopy(digest, 0, lefMostHalf, 0, lefMostHalf.length);
100  String hash = Base64Util.base64urlencode(lefMostHalf);
101 
102  result = hash.equals(tokenHash);
103  }
104  }
105  } catch (NoSuchProviderException e) {
106  LOG.error(e.getMessage(), e);
107  result = false;
108  } catch (NoSuchAlgorithmException e) {
109  LOG.error(e.getMessage(), e);
110  result = false;
111  } catch (Exception e) {
112  LOG.error(e.getMessage(), e);
113  result = false;
114  }
115 
116  return result;
117  }
ES512
Definition: SignatureAlgorithm.java:31
RS384
Definition: SignatureAlgorithm.java:27
ES256
Definition: SignatureAlgorithm.java:29
SignatureAlgorithm signatureAlgorithm
Definition: AbstractJwsSigner.java:30
HS256
Definition: SignatureAlgorithm.java:23
RS256
Definition: SignatureAlgorithm.java:26
static final Logger LOG
Definition: AbstractJwsSigner.java:28
HS512
Definition: SignatureAlgorithm.java:25
HS384
Definition: SignatureAlgorithm.java:24

◆ validateSignature()

abstract boolean org.xdi.oxauth.model.jws.AbstractJwsSigner.validateSignature ( String  signingInput,
String  signature 
) throws SignatureException
abstract

メンバ詳解

◆ LOG

final Logger org.xdi.oxauth.model.jws.AbstractJwsSigner.LOG = Logger.getLogger(AbstractJwsSigner.class)
staticprivate

◆ signatureAlgorithm

SignatureAlgorithm org.xdi.oxauth.model.jws.AbstractJwsSigner.signatureAlgorithm
private

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