keycloak
クラス | 公開メンバ関数 | 限定公開メンバ関数 | 限定公開変数類 | 静的非公開変数類 | 全メンバ一覧
org.keycloak.adapters.AdapterDeploymentContext クラス
org.keycloak.adapters.AdapterDeploymentContext 連携図
Collaboration graph

クラス

class  DeploymentDelegate
 

公開メンバ関数

 AdapterDeploymentContext ()
 
 AdapterDeploymentContext (KeycloakDeployment deployment)
 
 AdapterDeploymentContext (KeycloakConfigResolver configResolver)
 
KeycloakDeployment resolveDeployment (HttpFacade facade)
 
void updateDeployment (AdapterConfig config)
 

限定公開メンバ関数

KeycloakDeployment resolveUrls (KeycloakDeployment deployment, HttpFacade facade)
 
KeycloakUriBuilder getBaseBuilder (HttpFacade facade, String base)
 
void close (HttpResponse response)
 

限定公開変数類

KeycloakDeployment deployment
 
KeycloakConfigResolver configResolver
 

静的非公開変数類

static final Logger log = Logger.getLogger(AdapterDeploymentContext.class)
 

詳解

著者
Bill Burke
バージョン
Revision
1

構築子と解体子

◆ AdapterDeploymentContext() [1/3]

org.keycloak.adapters.AdapterDeploymentContext.AdapterDeploymentContext ( )
inline
46  {
47  }

◆ AdapterDeploymentContext() [2/3]

org.keycloak.adapters.AdapterDeploymentContext.AdapterDeploymentContext ( KeycloakDeployment  deployment)
inline

For single-tenant deployments, this constructor is to be used, as a full KeycloakDeployment is known at deployment time and won't change during the application deployment's life cycle.

引数
deploymentA KeycloakConfigResolver, possibly missing the Auth Server URL
57  {
58  this.deployment = deployment;
59  }
KeycloakDeployment deployment
Definition: AdapterDeploymentContext.java:43

◆ AdapterDeploymentContext() [3/3]

org.keycloak.adapters.AdapterDeploymentContext.AdapterDeploymentContext ( KeycloakConfigResolver  configResolver)
inline

For multi-tenant deployments, this constructor is to be used, as a KeycloakDeployment is not known at deployment time. It defers the resolution of a KeycloakDeployment to a KeycloakConfigResolver, to be implemented by the target application.

引数
configResolverA KeycloakConfigResolver that will be used to resolve a KeycloakDeployment
70  {
72  }
KeycloakConfigResolver configResolver
Definition: AdapterDeploymentContext.java:44

関数詳解

◆ close()

void org.keycloak.adapters.AdapterDeploymentContext.close ( HttpResponse  response)
inlineprotected
508  {
509  if (response.getEntity() != null) {
510  try {
511  response.getEntity().getContent().close();
512  } catch (IOException e) {
513 
514  }
515  }
516  }

◆ getBaseBuilder()

KeycloakUriBuilder org.keycloak.adapters.AdapterDeploymentContext.getBaseBuilder ( HttpFacade  facade,
String  base 
)
inlineprotected
487  {
488  KeycloakUriBuilder builder = KeycloakUriBuilder.fromUri(base);
489  URI request = URI.create(facade.getRequest().getURI());
490  String scheme = request.getScheme();
491  if (deployment.getSslRequired().isRequired(facade.getRequest().getRemoteAddr())) {
492  scheme = "https";
493  if (!request.getScheme().equals(scheme) && request.getPort() != -1) {
494  log.error("request scheme: " + request.getScheme() + " ssl required");
495  throw new RuntimeException("Can't resolve relative url from adapter config.");
496  }
497  }
498  builder.scheme(scheme);
499  builder.host(request.getHost());
500  if (request.getPort() != -1) {
501  builder.port(request.getPort());
502  }
503  return builder;
504  }
SslRequired getSslRequired()
Definition: KeycloakDeployment.java:275
static final Logger log
Definition: AdapterDeploymentContext.java:42
KeycloakDeployment deployment
Definition: AdapterDeploymentContext.java:43
boolean isRequired(ClientConnection connection)
Definition: SslRequired.java:34

◆ resolveDeployment()

KeycloakDeployment org.keycloak.adapters.AdapterDeploymentContext.resolveDeployment ( HttpFacade  facade)
inline

For single-tenant deployments, it complements KeycloakDeployment by resolving a relative Auth Server's URL based on the current request

For multi-tenant deployments, defers the resolution of KeycloakDeployment to the KeycloakConfigResolver .

引数
facadethe Request/Response Façade , used to either determine the Auth Server URL (single tenant) or pass thru to the KeycloakConfigResolver.
戻り値
86  {
87  if (null != configResolver) {
88  return configResolver.resolve(facade.getRequest());
89  }
90 
91  if (deployment == null) return null;
92  if (deployment.getAuthServerBaseUrl() == null) return deployment;
93 
94  KeycloakDeployment resolvedDeployment = resolveUrls(deployment, facade);
95  if (resolvedDeployment.getPublicKeyLocator() == null) {
96  throw new RuntimeException("KeycloakDeployment was never initialized through appropriate SPIs");
97  }
98  return resolvedDeployment;
99  }
KeycloakDeployment resolve(Request facade)
KeycloakDeployment deployment
Definition: AdapterDeploymentContext.java:43
String getAuthServerBaseUrl()
Definition: KeycloakDeployment.java:127
KeycloakDeployment resolveUrls(KeycloakDeployment deployment, HttpFacade facade)
Definition: AdapterDeploymentContext.java:101
KeycloakConfigResolver configResolver
Definition: AdapterDeploymentContext.java:44

◆ resolveUrls()

KeycloakDeployment org.keycloak.adapters.AdapterDeploymentContext.resolveUrls ( KeycloakDeployment  deployment,
HttpFacade  facade 
)
inlineprotected
101  {
102  if (deployment.relativeUrls == RelativeUrlsUsed.NEVER) {
103  // Absolute URI are already set to everything
104  return deployment;
105  } else {
106  DeploymentDelegate delegate = new DeploymentDelegate(this.deployment);
107  delegate.setAuthServerBaseUrl(getBaseBuilder(facade, this.deployment.getAuthServerBaseUrl()).build().toString());
108  return delegate;
109  }
110  }
RelativeUrlsUsed relativeUrls
Definition: KeycloakDeployment.java:46
Definition: RelativeUrlsUsed.java:33
KeycloakDeployment deployment
Definition: AdapterDeploymentContext.java:43
String getAuthServerBaseUrl()
Definition: KeycloakDeployment.java:127
KeycloakUriBuilder getBaseBuilder(HttpFacade facade, String base)
Definition: AdapterDeploymentContext.java:487

◆ updateDeployment()

void org.keycloak.adapters.AdapterDeploymentContext.updateDeployment ( AdapterConfig  config)
inline
518  {
519  if (null != configResolver) {
520  throw new IllegalStateException("Cannot parse an adapter config and build an updated deployment when on a multi-tenant scenario.");
521  }
522  deployment = KeycloakDeploymentBuilder.build(config);
523  }
KeycloakDeployment deployment
Definition: AdapterDeploymentContext.java:43
KeycloakConfigResolver configResolver
Definition: AdapterDeploymentContext.java:44

メンバ詳解

◆ configResolver

KeycloakConfigResolver org.keycloak.adapters.AdapterDeploymentContext.configResolver
protected

◆ deployment

KeycloakDeployment org.keycloak.adapters.AdapterDeploymentContext.deployment
protected

◆ log

final Logger org.keycloak.adapters.AdapterDeploymentContext.log = Logger.getLogger(AdapterDeploymentContext.class)
staticprivate

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