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

公開メンバ関数

 ClientsResource (RealmModel realm, AdminPermissionEvaluator auth, AdminEventBuilder adminEvent)
 
List< ClientRepresentation > getClients (@QueryParam("clientId") String clientId, @QueryParam("viewableOnly") @DefaultValue("false") boolean viewableOnly)
 
Response createClient (final ClientRepresentation rep)
 
ClientResource getClient (final @PathParam("id") String id)
 

限定公開変数類

RealmModel realm
 
KeycloakSession session
 

静的限定公開変数類

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

非公開メンバ関数

AuthorizationService getAuthorizationService (ClientModel clientModel)
 

非公開変数類

AdminPermissionEvaluator auth
 
AdminEventBuilder adminEvent
 

詳解

Base resource class for managing a realm's clients.

Clients

著者
Bill Burke
バージョン
Revision
1

構築子と解体子

◆ ClientsResource()

org.keycloak.services.resources.admin.ClientsResource.ClientsResource ( RealmModel  realm,
AdminPermissionEvaluator  auth,
AdminEventBuilder  adminEvent 
)
inline
80  {
81  this.realm = realm;
82  this.auth = auth;
83  this.adminEvent = adminEvent.resource(ResourceType.CLIENT);
84 
85  }
RealmModel realm
Definition: ClientsResource.java:73
AdminEventBuilder resource(ResourceType resourceType)
Definition: AdminEventBuilder.java:118
AdminPermissionEvaluator auth
Definition: ClientsResource.java:74
AdminEventBuilder adminEvent
Definition: ClientsResource.java:75

関数詳解

◆ createClient()

Response org.keycloak.services.resources.admin.ClientsResource.createClient ( final ClientRepresentation  rep)
inline

Create a new client

Client's client_id must be unique!

引数
rep
戻り値
154  {
156 
157  ValidationMessages validationMessages = new ValidationMessages();
158  if (!ClientValidator.validate(rep, validationMessages) || !PairwiseClientValidator.validate(session, rep, validationMessages)) {
159  Properties messages = AdminRoot.getMessages(session, realm, auth.adminAuth().getToken().getLocale());
160  throw new ErrorResponseException(
161  validationMessages.getStringMessages(),
162  validationMessages.getStringMessages(messages),
163  Response.Status.BAD_REQUEST
164  );
165  }
166 
167  try {
168  ClientModel clientModel = ClientManager.createClient(session, realm, rep, true);
169 
170  if (TRUE.equals(rep.isServiceAccountsEnabled())) {
171  UserModel serviceAccount = session.users().getServiceAccount(clientModel);
172 
173  if (serviceAccount == null) {
174  new ClientManager(new RealmManager(session)).enableServiceAccount(clientModel);
175  }
176  }
177 
178  adminEvent.operation(OperationType.CREATE).resourcePath(session.getContext().getUri(), clientModel.getId()).representation(rep).success();
179 
180  if (Profile.isFeatureEnabled(Profile.Feature.AUTHORIZATION)) {
181  if (TRUE.equals(rep.getAuthorizationServicesEnabled())) {
182  AuthorizationService authorizationService = getAuthorizationService(clientModel);
183 
184  authorizationService.enable(true);
185 
186  ResourceServerRepresentation authorizationSettings = rep.getAuthorizationSettings();
187 
188  if (authorizationSettings != null) {
189  authorizationService.resourceServer().importSettings(authorizationSettings);
190  }
191  }
192  }
193 
194  return Response.created(session.getContext().getUri().getAbsolutePathBuilder().path(clientModel.getId()).build()).build();
195  } catch (ModelDuplicateException e) {
196  return ErrorResponse.exists("Client " + rep.getClientId() + " already exists");
197  }
198  }
KeycloakSession session
Definition: ClientsResource.java:78
AccessToken getToken()
Definition: AdminAuth.java:56
AuthorizationService getAuthorizationService(ClientModel clientModel)
Definition: ClientsResource.java:140
RealmModel realm
Definition: ClientsResource.java:73
AdminEventBuilder operation(OperationType operationType)
Definition: AdminEventBuilder.java:113
void success()
Definition: AdminEventBuilder.java:226
AdminEventBuilder resourcePath(String... pathElements)
Definition: AdminEventBuilder.java:171
AdminPermissionEvaluator auth
Definition: ClientsResource.java:74
AdminEventBuilder adminEvent
Definition: ClientsResource.java:75

◆ getAuthorizationService()

AuthorizationService org.keycloak.services.resources.admin.ClientsResource.getAuthorizationService ( ClientModel  clientModel)
inlineprivate
140  {
141  return new AuthorizationService(session, clientModel, auth, adminEvent);
142  }
KeycloakSession session
Definition: ClientsResource.java:78
AdminPermissionEvaluator auth
Definition: ClientsResource.java:74
AdminEventBuilder adminEvent
Definition: ClientsResource.java:75

◆ getClient()

ClientResource org.keycloak.services.resources.admin.ClientsResource.getClient ( final @PathParam("id") String  id)
inline

Base path for managing a specific client.

引数
idid of client (not client-id)
戻り値
207  {
208 
209  ClientModel clientModel = realm.getClientById(id);
210  if (clientModel == null) {
211  // we do this to make sure somebody can't phish ids
212  if (auth.clients().canList()) throw new NotFoundException("Could not find client");
213  else throw new ForbiddenException();
214  }
215 
216  session.getContext().setClient(clientModel);
217 
218  ClientResource clientResource = new ClientResource(realm, auth, clientModel, session, adminEvent);
219  ResteasyProviderFactory.getInstance().injectProperties(clientResource);
220  return clientResource;
221  }
KeycloakSession session
Definition: ClientsResource.java:78
RealmModel realm
Definition: ClientsResource.java:73
AdminPermissionEvaluator auth
Definition: ClientsResource.java:74
AdminEventBuilder adminEvent
Definition: ClientsResource.java:75

◆ getClients()

List<ClientRepresentation> org.keycloak.services.resources.admin.ClientsResource.getClients ( @QueryParam("clientId") String  clientId,
@QueryParam("viewableOnly") @DefaultValue("false") boolean  viewableOnly 
)
inline

Get clients belonging to the realm

Returns a list of clients belonging to the realm

引数
clientIdfilter by clientId
viewableOnlyfilter clients that cannot be viewed in full by admin
98  {
99  List<ClientRepresentation> rep = new ArrayList<>();
100 
101  if (clientId == null || clientId.trim().equals("")) {
102  List<ClientModel> clientModels = realm.getClients();
104  boolean view = auth.clients().canView();
105  for (ClientModel clientModel : clientModels) {
106  if (view || auth.clients().canView(clientModel)) {
107  ClientRepresentation representation = ModelToRepresentation.toRepresentation(clientModel, session);
108  rep.add(representation);
109  representation.setAccess(auth.clients().getAccess(clientModel));
110  } else if (!viewableOnly) {
111  ClientRepresentation client = new ClientRepresentation();
112  client.setId(clientModel.getId());
113  client.setClientId(clientModel.getClientId());
114  client.setDescription(clientModel.getDescription());
115  rep.add(client);
116  }
117  }
118  } else {
119  ClientModel clientModel = realm.getClientByClientId(clientId);
120  if (clientModel != null) {
121  if (auth.clients().canView(clientModel)) {
122  ClientRepresentation representation = ModelToRepresentation.toRepresentation(clientModel, session);
123  representation.setAccess(auth.clients().getAccess(clientModel));
124  rep.add(representation);
125  } else if (!viewableOnly && auth.clients().canList()){
126  ClientRepresentation client = new ClientRepresentation();
127  client.setId(clientModel.getId());
128  client.setClientId(clientModel.getClientId());
129  client.setDescription(clientModel.getDescription());
130  rep.add(client);
131 
132  } else {
133  throw new ForbiddenException();
134  }
135  }
136  }
137  return rep;
138  }
KeycloakSession session
Definition: ClientsResource.java:78
RealmModel realm
Definition: ClientsResource.java:73
AdminPermissionEvaluator auth
Definition: ClientsResource.java:74

メンバ詳解

◆ adminEvent

AdminEventBuilder org.keycloak.services.resources.admin.ClientsResource.adminEvent
private

◆ auth

AdminPermissionEvaluator org.keycloak.services.resources.admin.ClientsResource.auth
private

◆ logger

final Logger org.keycloak.services.resources.admin.ClientsResource.logger = Logger.getLogger(ClientsResource.class)
staticprotected

◆ realm

RealmModel org.keycloak.services.resources.admin.ClientsResource.realm
protected

◆ session

KeycloakSession org.keycloak.services.resources.admin.ClientsResource.session
protected

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