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

公開メンバ関数

 ClientScopesResource (RealmModel realm, AdminPermissionEvaluator auth, AdminEventBuilder adminEvent)
 
List< ClientScopeRepresentation > getClientScopes ()
 
Response createClientScope (ClientScopeRepresentation rep)
 
Response generateAudienceClientScope (final @QueryParam("clientId") String clientId)
 
ClientScopeResource getClientScope (final @PathParam("id") String id)
 

限定公開変数類

RealmModel realm
 
KeycloakSession session
 

静的限定公開変数類

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

非公開変数類

AdminPermissionEvaluator auth
 
AdminEventBuilder adminEvent
 

詳解

Base resource class for managing a realm's client scopes.

Client Scopes

著者
Bill Burke
バージョン
Revision
1

構築子と解体子

◆ ClientScopesResource()

org.keycloak.services.resources.admin.ClientScopesResource.ClientScopesResource ( RealmModel  realm,
AdminPermissionEvaluator  auth,
AdminEventBuilder  adminEvent 
)
inline
69  {
70  this.realm = realm;
71  this.auth = auth;
72  this.adminEvent = adminEvent.resource(ResourceType.CLIENT_SCOPE);
73  }
AdminEventBuilder adminEvent
Definition: ClientScopesResource.java:64
AdminEventBuilder resource(ResourceType resourceType)
Definition: AdminEventBuilder.java:118
RealmModel realm
Definition: ClientScopesResource.java:62
AdminPermissionEvaluator auth
Definition: ClientScopesResource.java:63

関数詳解

◆ createClientScope()

Response org.keycloak.services.resources.admin.ClientScopesResource.createClientScope ( ClientScopeRepresentation  rep)
inline

Create a new client scope

Client Scope's name must be unique!

引数
rep
戻り値
113  {
115 
116  try {
117  ClientScopeModel clientModel = RepresentationToModel.createClientScope(session, realm, rep);
118 
119  adminEvent.operation(OperationType.CREATE).resourcePath(session.getContext().getUri(), clientModel.getId()).representation(rep).success();
120 
121  return Response.created(session.getContext().getUri().getAbsolutePathBuilder().path(clientModel.getId()).build()).build();
122  } catch (ModelDuplicateException e) {
123  return ErrorResponse.exists("Client Scope " + rep.getName() + " already exists");
124  }
125  }
KeycloakSession session
Definition: ClientScopesResource.java:67
AdminEventBuilder adminEvent
Definition: ClientScopesResource.java:64
AdminEventBuilder operation(OperationType operationType)
Definition: AdminEventBuilder.java:113
void success()
Definition: AdminEventBuilder.java:226
RealmModel realm
Definition: ClientScopesResource.java:62
AdminEventBuilder resourcePath(String... pathElements)
Definition: AdminEventBuilder.java:171
AdminPermissionEvaluator auth
Definition: ClientScopesResource.java:63

◆ generateAudienceClientScope()

Response org.keycloak.services.resources.admin.ClientScopesResource.generateAudienceClientScope ( final @QueryParam("clientId") String  clientId)
inline

Generate new client scope for specified service client. The "Frontend" clients, who will use this client scope, will be able to send their access token to authenticate against specified service client

引数
clientIdClient ID of service client (typically bearer-only client)
戻り値
137  {
139 
140  logger.debugf("Generating audience scope for service client: " + clientId);
141 
142  String clientScopeName = clientId;
143  try {
144  ClientModel serviceClient = realm.getClientByClientId(clientId);
145  if (serviceClient == null) {
146  logger.warnf("Referenced service client '%s' doesn't exists", clientId);
147  return ErrorResponse.exists("Referenced service client doesn't exists");
148  }
149 
150  ClientScopeModel clientScopeModel = realm.addClientScope(clientScopeName);
151  clientScopeModel.setDescription("Client scope useful for frontend clients, which want to call service " + clientId);
152  clientScopeModel.setProtocol(serviceClient.getProtocol()==null ? OIDCLoginProtocol.LOGIN_PROTOCOL : serviceClient.getProtocol());
153  clientScopeModel.setDisplayOnConsentScreen(true);
154 
155  String consentText = serviceClient.getName() != null ? serviceClient.getName() : serviceClient.getClientId();
156  consentText = consentText.substring(0, 1).toUpperCase() + consentText.substring(1);
157  clientScopeModel.setConsentScreenText(consentText);
158 
159  // Add audience protocol mapper
160  ProtocolMapperModel audienceMapper = AudienceProtocolMapper.createClaimMapper("Audience for " + clientId, clientId, null,true, false);
161  clientScopeModel.addProtocolMapper(audienceMapper);
162 
163  // Add scope to client roles
164  for (RoleModel role : serviceClient.getRoles()) {
165  clientScopeModel.addScopeMapping(role);
166  }
167 
168  adminEvent.operation(OperationType.CREATE).resourcePath(session.getContext().getUri()).success();
169 
170  return Response.created(session.getContext().getUri().getAbsolutePathBuilder().path(clientScopeModel.getId()).build()).build();
171  } catch (ModelDuplicateException e) {
172  return ErrorResponse.exists("Client Scope " + clientScopeName + " already exists");
173  }
174  }
KeycloakSession session
Definition: ClientScopesResource.java:67
AdminEventBuilder adminEvent
Definition: ClientScopesResource.java:64
AdminEventBuilder operation(OperationType operationType)
Definition: AdminEventBuilder.java:113
static final Logger logger
Definition: ClientScopesResource.java:61
RealmModel realm
Definition: ClientScopesResource.java:62
AdminEventBuilder resourcePath(String... pathElements)
Definition: AdminEventBuilder.java:171
AdminPermissionEvaluator auth
Definition: ClientScopesResource.java:63

◆ getClientScope()

ClientScopeResource org.keycloak.services.resources.admin.ClientScopesResource.getClientScope ( final @PathParam("id") String  id)
inline

Base path for managing a specific client scope.

引数
idid of client scope (not name)
戻り値
184  {
186  ClientScopeModel clientModel = realm.getClientScopeById(id);
187  if (clientModel == null) {
188  throw new NotFoundException("Could not find client scope");
189  }
190  ClientScopeResource clientResource = new ClientScopeResource(realm, auth, clientModel, session, adminEvent);
191  ResteasyProviderFactory.getInstance().injectProperties(clientResource);
192  return clientResource;
193  }
KeycloakSession session
Definition: ClientScopesResource.java:67
AdminEventBuilder adminEvent
Definition: ClientScopesResource.java:64
RealmModel realm
Definition: ClientScopesResource.java:62
AdminPermissionEvaluator auth
Definition: ClientScopesResource.java:63

◆ getClientScopes()

List<ClientScopeRepresentation> org.keycloak.services.resources.admin.ClientScopesResource.getClientScopes ( )
inline

Get client scopes belonging to the realm

Returns a list of client scopes belonging to the realm

83  {
85 
86  List<ClientScopeRepresentation> rep = new ArrayList<>();
87  List<ClientScopeModel> clientModels = realm.getClientScopes();
88 
89  boolean viewable = auth.clients().canViewClientScopes();
90  for (ClientScopeModel clientModel : clientModels) {
91  if (viewable) rep.add(ModelToRepresentation.toRepresentation(clientModel));
92  else {
93  ClientScopeRepresentation tempRep = new ClientScopeRepresentation();
94  tempRep.setName(clientModel.getName());
95  tempRep.setId(clientModel.getId());
96  tempRep.setProtocol(clientModel.getProtocol());
97  }
98  }
99  return rep;
100  }
RealmModel realm
Definition: ClientScopesResource.java:62
AdminPermissionEvaluator auth
Definition: ClientScopesResource.java:63

メンバ詳解

◆ adminEvent

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

◆ auth

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

◆ logger

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

◆ realm

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

◆ session

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

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