keycloak
公開メンバ関数 | 限定公開メンバ関数 | 非公開変数類 | 全メンバ一覧
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 KeycloakSession session
Definition: AccessTokenIntrospectionProvider.java:41
final TokenManager tokenManager
Definition: AccessTokenIntrospectionProvider.java:42
final RealmModel realm
Definition: AccessTokenIntrospectionProvider.java:43

関数詳解

◆ close()

void org.keycloak.protocol.oidc.AccessTokenIntrospectionProvider.close ( )
inline

org.keycloak.provider.Providerを実装しています。

93  {
94 
95  }

◆ introspect()

Response org.keycloak.protocol.oidc.AccessTokenIntrospectionProvider.introspect ( String  token)
inline

org.keycloak.protocol.oidc.TokenIntrospectionProviderを実装しています。

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 KeycloakSession session
Definition: AccessTokenIntrospectionProvider.java:41
URI getBaseUri()
Definition: KeycloakUriInfo.java:79
final TokenManager tokenManager
Definition: AccessTokenIntrospectionProvider.java:42
< T extends Provider > T getProvider(Class< T > clazz)
final RealmModel realm
Definition: AccessTokenIntrospectionProvider.java:43

メンバ詳解

◆ 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

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