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

静的公開メンバ関数

static ClientCredentialsProvider bootstrapClientAuthenticator (KeycloakDeployment deployment)
 
static void setClientCredentials (KeycloakDeployment deployment, Map< String, String > requestHeaders, Map< String, String > formparams)
 
static void setClientCredentials (KeycloakDeployment deployment, HttpPost post, List< NameValuePair > formparams)
 

静的非公開メンバ関数

static void loadAuthenticators (Map< String, ClientCredentialsProvider > authenticators, ClassLoader classLoader)
 

静的非公開変数類

static Logger logger = Logger.getLogger(ClientCredentialsProviderUtils.class)
 

詳解

著者
Marek Posolda

関数詳解

◆ bootstrapClientAuthenticator()

static ClientCredentialsProvider org.keycloak.adapters.authentication.ClientCredentialsProviderUtils.bootstrapClientAuthenticator ( KeycloakDeployment  deployment)
inlinestatic
40  {
41  String clientId = deployment.getResourceName();
42  Map<String, Object> clientCredentials = deployment.getResourceCredentials();
43 
44  String authenticatorId;
45  if (clientCredentials == null || clientCredentials.isEmpty()) {
46  authenticatorId = ClientIdAndSecretCredentialsProvider.PROVIDER_ID;
47  } else {
48  authenticatorId = (String) clientCredentials.get("provider");
49  if (authenticatorId == null) {
50  // If there is just one credential type, use provider from it
51  if (clientCredentials.size() == 1) {
52  authenticatorId = clientCredentials.keySet().iterator().next();
53  } else {
54  throw new RuntimeException("Can't identify clientAuthenticator from the configuration of client '" + clientId + "' . Check your adapter configurations");
55  }
56  }
57  }
58 
59  logger.debugf("Using provider '%s' for authentication of client '%s'", authenticatorId, clientId);
60 
61  Map<String, ClientCredentialsProvider> authenticators = new HashMap<>();
62  loadAuthenticators(authenticators, ClientCredentialsProviderUtils.class.getClassLoader());
63  loadAuthenticators(authenticators, Thread.currentThread().getContextClassLoader());
64 
65  ClientCredentialsProvider authenticator = authenticators.get(authenticatorId);
66  if (authenticator == null) {
67  throw new RuntimeException("Couldn't find ClientCredentialsProvider implementation class with id: " + authenticatorId + ". Loaded authentication providers: " + authenticators.keySet());
68  }
69 
70  Object config = (clientCredentials==null) ? null : clientCredentials.get(authenticatorId);
71  authenticator.init(deployment, config);
72 
73  return authenticator;
74  }
static void loadAuthenticators(Map< String, ClientCredentialsProvider > authenticators, ClassLoader classLoader)
Definition: ClientCredentialsProviderUtils.java:76
static Logger logger
Definition: ClientCredentialsProviderUtils.java:38

◆ loadAuthenticators()

static void org.keycloak.adapters.authentication.ClientCredentialsProviderUtils.loadAuthenticators ( Map< String, ClientCredentialsProvider authenticators,
ClassLoader  classLoader 
)
inlinestaticprivate
76  {
77  Iterator<ClientCredentialsProvider> iterator = ServiceLoader.load(ClientCredentialsProvider.class, classLoader).iterator();
78  while (iterator.hasNext()) {
79  try {
80  ClientCredentialsProvider authenticator = iterator.next();
81  logger.debugf("Loaded clientCredentialsProvider %s", authenticator.getId());
82  authenticators.put(authenticator.getId(), authenticator);
83  } catch (ServiceConfigurationError e) {
84  if (logger.isDebugEnabled()) {
85  logger.debug("Failed to load clientCredentialsProvider with classloader: " + classLoader, e);
86  }
87  }
88  }
89  }
static Logger logger
Definition: ClientCredentialsProviderUtils.java:38

◆ setClientCredentials() [1/2]

static void org.keycloak.adapters.authentication.ClientCredentialsProviderUtils.setClientCredentials ( KeycloakDeployment  deployment,
Map< String, String >  requestHeaders,
Map< String, String >  formparams 
)
inlinestatic

Use this method when calling backchannel request directly from your application. See service-account example from demo for more details

94  {
95  ClientCredentialsProvider authenticator = deployment.getClientAuthenticator();
96  authenticator.setClientCredentials(deployment, requestHeaders, formparams);
97  }

◆ setClientCredentials() [2/2]

static void org.keycloak.adapters.authentication.ClientCredentialsProviderUtils.setClientCredentials ( KeycloakDeployment  deployment,
HttpPost  post,
List< NameValuePair >  formparams 
)
inlinestatic

Don't use directly from your JEE apps to avoid HttpClient linkage errors! Instead use the method setClientCredentials(KeycloakDeployment, Map, Map)

102  {
103  Map<String, String> reqHeaders = new HashMap<>();
104  Map<String, String> reqParams = new HashMap<>();
105  setClientCredentials(deployment, reqHeaders, reqParams);
106 
107  for (Map.Entry<String, String> header : reqHeaders.entrySet()) {
108  post.setHeader(header.getKey(), header.getValue());
109  }
110 
111  for (Map.Entry<String, String> param : reqParams.entrySet()) {
112  formparams.add(new BasicNameValuePair(param.getKey(), param.getValue()));
113  }
114  }
static void setClientCredentials(KeycloakDeployment deployment, Map< String, String > requestHeaders, Map< String, String > formparams)
Definition: ClientCredentialsProviderUtils.java:94

メンバ詳解

◆ logger

Logger org.keycloak.adapters.authentication.ClientCredentialsProviderUtils.logger = Logger.getLogger(ClientCredentialsProviderUtils.class)
staticprivate

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