keycloak-service
公開メンバ関数 | 限定公開メンバ関数 | 非公開変数類 | 全メンバ一覧
org.keycloak.protocol.oidc.AccessTokenIntrospectionProvider クラス
org.keycloak.protocol.oidc.AccessTokenIntrospectionProvider の継承関係図
Inheritance graph
org.keycloak.protocol.oidc.AccessTokenIntrospectionProvider 連携図
Collaboration graph

公開メンバ関数

 AccessTokenIntrospectionProvider (KeycloakSession session)
 
Response introspect (String token)
 
void close ()
 

限定公開メンバ関数

AccessToken verifyAccessToken (String token) throws OAuthErrorException, IOException
 

非公開変数類

final KeycloakSession session
 
final TokenManager tokenManager
 
final RealmModel realm
 

詳解

著者
Pedro Igor

構築子と解体子

◆ AccessTokenIntrospectionProvider()

org.keycloak.protocol.oidc.AccessTokenIntrospectionProvider.AccessTokenIntrospectionProvider ( KeycloakSession  session)
inline
45  {
46  this.session = session;
47  this.realm = session.getContext().getRealm();
48  this.tokenManager = new TokenManager();
49  }
final RealmModel realm
Definition: AccessTokenIntrospectionProvider.java:43
final KeycloakSession session
Definition: AccessTokenIntrospectionProvider.java:41
final TokenManager tokenManager
Definition: AccessTokenIntrospectionProvider.java:42

関数詳解

◆ close()

void org.keycloak.protocol.oidc.AccessTokenIntrospectionProvider.close ( )
inline
93  {
94 
95  }

◆ introspect()

Response org.keycloak.protocol.oidc.AccessTokenIntrospectionProvider.introspect ( String  token)
inline
51  {
52  try {
53  AccessToken accessToken = verifyAccessToken(token);
54  ObjectNode tokenMetadata;
55 
56  if (accessToken != null) {
57  tokenMetadata = JsonSerialization.createObjectNode(accessToken);
58  tokenMetadata.put("client_id", accessToken.getIssuedFor());
59  tokenMetadata.put("username", accessToken.getPreferredUsername());
60  } else {
61  tokenMetadata = JsonSerialization.createObjectNode();
62  }
63 
64  tokenMetadata.put("active", accessToken != null);
65 
66  return Response.ok(JsonSerialization.writeValueAsBytes(tokenMetadata)).type(MediaType.APPLICATION_JSON_TYPE).build();
67  } catch (Exception e) {
68  throw new RuntimeException("Error creating token introspection response.", e);
69  }
70  }
AccessToken verifyAccessToken(String token)
Definition: AccessTokenIntrospectionProvider.java:72

◆ verifyAccessToken()

AccessToken org.keycloak.protocol.oidc.AccessTokenIntrospectionProvider.verifyAccessToken ( String  token) throws OAuthErrorException, IOException
inlineprotected
72  {
73  AccessToken accessToken;
74 
75  try {
76  TokenVerifier<AccessToken> verifier = TokenVerifier.create(token, AccessToken.class)
77  .realmUrl(Urls.realmIssuer(session.getContext().getUri().getBaseUri(), realm.getName()));
78 
79  SignatureVerifierContext verifierContext = session.getProvider(SignatureProvider.class, verifier.getHeader().getAlgorithm().name()).verifier(verifier.getHeader().getKeyId());
80  verifier.verifierContext(verifierContext);
81 
82  accessToken = verifier.verify().getToken();
83  } catch (VerificationException e) {
84  return null;
85  }
86 
87  RealmModel realm = this.session.getContext().getRealm();
88 
89  return tokenManager.checkTokenValidForIntrospection(session, realm, accessToken) ? accessToken : null;
90  }
final RealmModel realm
Definition: AccessTokenIntrospectionProvider.java:43
boolean checkTokenValidForIntrospection(KeycloakSession session, RealmModel realm, AccessToken token)
Definition: TokenManager.java:215
final KeycloakSession session
Definition: AccessTokenIntrospectionProvider.java:41
final TokenManager tokenManager
Definition: AccessTokenIntrospectionProvider.java:42

メンバ詳解

◆ realm

final RealmModel org.keycloak.protocol.oidc.AccessTokenIntrospectionProvider.realm
private

◆ session

final KeycloakSession org.keycloak.protocol.oidc.AccessTokenIntrospectionProvider.session
private

◆ tokenManager

final TokenManager org.keycloak.protocol.oidc.AccessTokenIntrospectionProvider.tokenManager
private

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