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

公開メンバ関数

 ClientsManagementService (RealmModel realm, EventBuilder event)
 
Response registerNode (@HeaderParam(HttpHeaders.AUTHORIZATION) String authorizationHeader, final MultivaluedMap< String, String > formData)
 
Response unregisterNode (@HeaderParam(HttpHeaders.AUTHORIZATION) String authorizationHeader, final MultivaluedMap< String, String > formData)
 

静的公開メンバ関数

static UriBuilder clientsManagementBaseUrl (UriBuilder baseUriBuilder)
 
static UriBuilder registerNodeUrl (UriBuilder baseUriBuilder)
 
static UriBuilder unregisterNodeUrl (UriBuilder baseUriBuilder)
 

限定公開メンバ関数

ClientModel authorizeClient ()
 
String getClientClusterHost (MultivaluedMap< String, String > formData)
 

限定公開変数類

HttpHeaders headers
 
Providers providers
 
KeycloakSession session
 

非公開メンバ関数

boolean checkSsl ()
 

非公開変数類

RealmModel realm
 
EventBuilder event
 
HttpRequest request
 
ClientConnection clientConnection
 

静的非公開変数類

static final Logger logger = Logger.getLogger(ClientsManagementService.class)
 

詳解

著者
Marek Posolda

構築子と解体子

◆ ClientsManagementService()

org.keycloak.services.resources.ClientsManagementService.ClientsManagementService ( RealmModel  realm,
EventBuilder  event 
)
inline
76  {
77  this.realm = realm;
78  this.event = event;
79  }
EventBuilder event
Definition: ClientsManagementService.java:59
RealmModel realm
Definition: ClientsManagementService.java:57

関数詳解

◆ authorizeClient()

ClientModel org.keycloak.services.resources.ClientsManagementService.authorizeClient ( )
inlineprotected
166  {
167  ClientModel client = AuthorizeClientUtil.authorizeClient(session, event).getClient();
168 
169  if (client.isPublicClient()) {
170  OAuth2ErrorRepresentation errorRep = new OAuth2ErrorRepresentation(OAuthErrorException.INVALID_CLIENT, "Public clients not allowed");
171  event.error(Errors.INVALID_CLIENT);
172  throw new BadRequestException("Public clients not allowed", javax.ws.rs.core.Response.status(javax.ws.rs.core.Response.Status.BAD_REQUEST).entity(errorRep).type(MediaType.APPLICATION_JSON_TYPE).build());
173  }
174 
175  return client;
176  }
EventBuilder event
Definition: ClientsManagementService.java:59
KeycloakSession session
Definition: ClientsManagementService.java:74

◆ checkSsl()

boolean org.keycloak.services.resources.ClientsManagementService.checkSsl ( )
inlineprivate
191  {
192  if (session.getContext().getUri().getBaseUri().getScheme().equals("https")) {
193  return true;
194  } else {
195  return !realm.getSslRequired().isRequired(clientConnection);
196  }
197  }
ClientConnection clientConnection
Definition: ClientsManagementService.java:68
RealmModel realm
Definition: ClientsManagementService.java:57
KeycloakSession session
Definition: ClientsManagementService.java:74

◆ clientsManagementBaseUrl()

static UriBuilder org.keycloak.services.resources.ClientsManagementService.clientsManagementBaseUrl ( UriBuilder  baseUriBuilder)
inlinestatic
81  {
82  return baseUriBuilder.path(RealmsResource.class).path(RealmsResource.class, "getClientsManagementService");
83  }

◆ getClientClusterHost()

String org.keycloak.services.resources.ClientsManagementService.getClientClusterHost ( MultivaluedMap< String, String >  formData)
inlineprotected
178  {
179  String clientClusterHost = formData.getFirst(AdapterConstants.CLIENT_CLUSTER_HOST);
180  if (clientClusterHost == null || clientClusterHost.length() == 0) {
181  OAuth2ErrorRepresentation errorRep = new OAuth2ErrorRepresentation( OAuthErrorException.INVALID_REQUEST, "Client cluster host not specified");
182  event.error(Errors.INVALID_CODE);
183  throw new BadRequestException("Cluster host not specified", javax.ws.rs.core.Response.status(javax.ws.rs.core.Response.Status.BAD_REQUEST).entity(errorRep).type(MediaType.APPLICATION_JSON_TYPE).build());
184  }
185 
186  return clientClusterHost;
187  }

◆ registerNode()

Response org.keycloak.services.resources.ClientsManagementService.registerNode ( @HeaderParam(HttpHeaders.AUTHORIZATION) String  authorizationHeader,
final MultivaluedMap< String, String >  formData 
)
inline

URL invoked by adapter to register new client cluster node. Each application cluster node will invoke this URL once it joins cluster

引数
authorizationHeader
formData
戻り値
105  {
106  if (!checkSsl()) {
107  throw new ForbiddenException("HTTPS required");
108  }
109 
110  event.event(EventType.REGISTER_NODE);
111 
112  if (!realm.isEnabled()) {
113  event.error(Errors.REALM_DISABLED);
114  throw new UnauthorizedException("Realm not enabled");
115  }
116 
117  ClientModel client = authorizeClient();
118  String nodeHost = getClientClusterHost(formData);
119 
120  event.client(client).detail(Details.NODE_HOST, nodeHost);
121  logger.debugf("Registering cluster host '%s' for client '%s'", nodeHost, client.getClientId());
122 
123  client.registerNode(nodeHost, Time.currentTime());
124 
125  event.success();
126 
127  return Response.noContent().build();
128  }
static final Logger logger
Definition: ClientsManagementService.java:55
ClientModel authorizeClient()
Definition: ClientsManagementService.java:166
RealmModel realm
Definition: ClientsManagementService.java:57
String getClientClusterHost(MultivaluedMap< String, String > formData)
Definition: ClientsManagementService.java:178
boolean checkSsl()
Definition: ClientsManagementService.java:191

◆ registerNodeUrl()

static UriBuilder org.keycloak.services.resources.ClientsManagementService.registerNodeUrl ( UriBuilder  baseUriBuilder)
inlinestatic
85  {
86  UriBuilder uriBuilder = clientsManagementBaseUrl(baseUriBuilder);
87  return uriBuilder.path(ClientsManagementService.class, "registerNode");
88  }
static UriBuilder clientsManagementBaseUrl(UriBuilder baseUriBuilder)
Definition: ClientsManagementService.java:81
ClientsManagementService(RealmModel realm, EventBuilder event)
Definition: ClientsManagementService.java:76

◆ unregisterNode()

Response org.keycloak.services.resources.ClientsManagementService.unregisterNode ( @HeaderParam(HttpHeaders.AUTHORIZATION) String  authorizationHeader,
final MultivaluedMap< String, String >  formData 
)
inline

URL invoked by adapter to register new client cluster node. Each application cluster node will invoke this URL once it joins cluster

引数
authorizationHeader
formData
戻り値
141  {
142  if (!checkSsl()) {
143  throw new ForbiddenException("HTTPS required");
144  }
145 
146  event.event(EventType.UNREGISTER_NODE);
147 
148  if (!realm.isEnabled()) {
149  event.error(Errors.REALM_DISABLED);
150  throw new UnauthorizedException("Realm not enabled");
151  }
152 
153  ClientModel client = authorizeClient();
154  String nodeHost = getClientClusterHost(formData);
155 
156  event.client(client).detail(Details.NODE_HOST, nodeHost);
157  logger.debugf("Unregistering cluster host '%s' for client '%s'", nodeHost, client.getClientId());
158 
159  client.unregisterNode(nodeHost);
160 
161  event.success();
162 
163  return Response.noContent().build();
164  }
static final Logger logger
Definition: ClientsManagementService.java:55
ClientModel authorizeClient()
Definition: ClientsManagementService.java:166
RealmModel realm
Definition: ClientsManagementService.java:57
String getClientClusterHost(MultivaluedMap< String, String > formData)
Definition: ClientsManagementService.java:178
boolean checkSsl()
Definition: ClientsManagementService.java:191

◆ unregisterNodeUrl()

static UriBuilder org.keycloak.services.resources.ClientsManagementService.unregisterNodeUrl ( UriBuilder  baseUriBuilder)
inlinestatic
90  {
91  UriBuilder uriBuilder = clientsManagementBaseUrl(baseUriBuilder);
92  return uriBuilder.path(ClientsManagementService.class, "unregisterNode");
93  }
static UriBuilder clientsManagementBaseUrl(UriBuilder baseUriBuilder)
Definition: ClientsManagementService.java:81
ClientsManagementService(RealmModel realm, EventBuilder event)
Definition: ClientsManagementService.java:76

メンバ詳解

◆ clientConnection

ClientConnection org.keycloak.services.resources.ClientsManagementService.clientConnection
private

◆ event

EventBuilder org.keycloak.services.resources.ClientsManagementService.event
private

◆ headers

HttpHeaders org.keycloak.services.resources.ClientsManagementService.headers
protected

◆ logger

final Logger org.keycloak.services.resources.ClientsManagementService.logger = Logger.getLogger(ClientsManagementService.class)
staticprivate

◆ providers

Providers org.keycloak.services.resources.ClientsManagementService.providers
protected

◆ realm

RealmModel org.keycloak.services.resources.ClientsManagementService.realm
private

◆ request

HttpRequest org.keycloak.services.resources.ClientsManagementService.request
private

◆ session

KeycloakSession org.keycloak.services.resources.ClientsManagementService.session
protected

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