keycloak-service
公開メンバ関数 | 限定公開メンバ関数 | 限定公開変数類 | 非公開変数類 | 全メンバ一覧
org.keycloak.services.resources.admin.RoleContainerResource クラス
org.keycloak.services.resources.admin.RoleContainerResource の継承関係図
Inheritance graph
org.keycloak.services.resources.admin.RoleContainerResource 連携図
Collaboration graph

公開メンバ関数

 RoleContainerResource (KeycloakSession session, UriInfo uriInfo, RealmModel realm, AdminPermissionEvaluator auth, RoleContainerModel roleContainer, AdminEventBuilder adminEvent)
 
List< RoleRepresentation > getRoles ()
 
Response createRole (final RoleRepresentation rep)
 
RoleRepresentation getRole (final @PathParam("role-name") String roleName)
 
void deleteRole (final @PathParam("role-name") String roleName)
 
Response updateRole (final @PathParam("role-name") String roleName, final RoleRepresentation rep)
 
void addComposites (final @PathParam("role-name") String roleName, List< RoleRepresentation > roles)
 
Set< RoleRepresentation > getRoleComposites (final @PathParam("role-name") String roleName)
 
Set< RoleRepresentation > getRealmRoleComposites (final @PathParam("role-name") String roleName)
 
Set< RoleRepresentation > getClientRoleComposites (final @PathParam("role-name") String roleName, final @PathParam("client") String client)
 
void deleteComposites (final @PathParam("role-name") String roleName, List< RoleRepresentation > roles)
 
ManagementPermissionReference getManagementPermissions (final @PathParam("role-name") String roleName)
 
ManagementPermissionReference setManagementPermissionsEnabled (final @PathParam("role-name") String roleName, ManagementPermissionReference ref)
 
List< UserRepresentation > getUsersInRole (final @PathParam("role-name") String roleName, @QueryParam("first") Integer firstResult, @QueryParam("max") Integer maxResults)
 

限定公開メンバ関数

RoleRepresentation getRole (RoleModel roleModel)
 
void deleteRole (RoleModel role)
 
void updateRole (RoleRepresentation rep, RoleModel role)
 
void addComposites (AdminPermissionEvaluator auth, AdminEventBuilder adminEvent, UriInfo uriInfo, List< RoleRepresentation > roles, RoleModel role)
 
Set< RoleRepresentation > getRoleComposites (RoleModel role)
 
Set< RoleRepresentation > getRealmRoleComposites (RoleModel role)
 
Set< RoleRepresentation > getClientRoleComposites (ClientModel app, RoleModel role)
 
void deleteComposites (AdminEventBuilder adminEvent, UriInfo uriInfo, List< RoleRepresentation > roles, RoleModel role)
 

限定公開変数類

AdminPermissionEvaluator auth
 
RoleContainerModel roleContainer
 

非公開変数類

final RealmModel realm
 
AdminEventBuilder adminEvent
 
UriInfo uriInfo
 
KeycloakSession session
 

詳解

Roles

著者
Bill Burke
バージョン
Revision
1

構築子と解体子

◆ RoleContainerResource()

org.keycloak.services.resources.admin.RoleContainerResource.RoleContainerResource ( KeycloakSession  session,
UriInfo  uriInfo,
RealmModel  realm,
AdminPermissionEvaluator  auth,
RoleContainerModel  roleContainer,
AdminEventBuilder  adminEvent 
)
inline
73  {
74  super(realm);
75  this.uriInfo = uriInfo;
76  this.realm = realm;
77  this.auth = auth;
79  this.adminEvent = adminEvent;
80  this.session = session;
81  }
KeycloakSession session
Definition: RoleContainerResource.java:70
final RealmModel realm
Definition: RoleContainerResource.java:64
RoleContainerModel roleContainer
Definition: RoleContainerResource.java:67
AdminPermissionEvaluator auth
Definition: RoleContainerResource.java:65
UriInfo uriInfo
Definition: RoleContainerResource.java:69
AdminEventBuilder adminEvent
Definition: RoleContainerResource.java:68

関数詳解

◆ addComposites() [1/2]

void org.keycloak.services.resources.admin.RoleResource.addComposites ( AdminPermissionEvaluator  auth,
AdminEventBuilder  adminEvent,
UriInfo  uriInfo,
List< RoleRepresentation >  roles,
RoleModel  role 
)
inlineprotectedinherited
63  {
64  for (RoleRepresentation rep : roles) {
65  RoleModel composite = realm.getRoleById(rep.getId());
66  if (composite == null) {
67  throw new NotFoundException("Could not find composite role");
68  }
69  auth.roles().requireMapComposite(composite);
70  role.addCompositeRole(composite);
71  }
72 
73  if (role.isClientRole()) {
74  adminEvent.resource(ResourceType.CLIENT_ROLE);
75  } else {
76  adminEvent.resource(ResourceType.REALM_ROLE);
77  }
78 
79  adminEvent.operation(OperationType.CREATE).resourcePath(uriInfo).representation(roles).success();
80  }
RealmModel realm
Definition: RoleResource.java:42

◆ addComposites() [2/2]

void org.keycloak.services.resources.admin.RoleContainerResource.addComposites ( final @PathParam("role-name") String  roleName,
List< RoleRepresentation >  roles 
)
inline

Add a composite to the role

引数
roleNamerole's name (not id!)
roles
226  {
228  RoleModel role = roleContainer.getRole(roleName);
229  if (role == null) {
230  throw new NotFoundException("Could not find role");
231  }
232  addComposites(auth, adminEvent, uriInfo, roles, role);
233  }
void addComposites(final @PathParam("role-name") String roleName, List< RoleRepresentation > roles)
Definition: RoleContainerResource.java:226
RoleContainerModel roleContainer
Definition: RoleContainerResource.java:67
AdminPermissionEvaluator auth
Definition: RoleContainerResource.java:65
UriInfo uriInfo
Definition: RoleContainerResource.java:69
AdminEventBuilder adminEvent
Definition: RoleContainerResource.java:68

◆ createRole()

Response org.keycloak.services.resources.admin.RoleContainerResource.createRole ( final RoleRepresentation  rep)
inline

Create a new role for the realm or client

引数
rep
戻り値
110  {
112 
113  if (rep.getName() == null) {
114  throw new BadRequestException();
115  }
116 
117  try {
118  RoleModel role = roleContainer.addRole(rep.getName());
119  role.setDescription(rep.getDescription());
120 
121  rep.setId(role.getId());
122 
123  if (role.isClientRole()) {
124  adminEvent.resource(ResourceType.CLIENT_ROLE);
125  } else {
126  adminEvent.resource(ResourceType.REALM_ROLE);
127  }
128 
129  adminEvent.operation(OperationType.CREATE).resourcePath(uriInfo, role.getName()).representation(rep).success();
130 
131  return Response.created(uriInfo.getAbsolutePathBuilder().path(role.getName()).build()).build();
132  } catch (ModelDuplicateException e) {
133  return ErrorResponse.exists("Role with name " + rep.getName() + " already exists");
134  }
135  }
RoleContainerModel roleContainer
Definition: RoleContainerResource.java:67
AdminEventBuilder resource(ResourceType resourceType)
Definition: AdminEventBuilder.java:118
AdminEventBuilder operation(OperationType operationType)
Definition: AdminEventBuilder.java:113
AdminPermissionEvaluator auth
Definition: RoleContainerResource.java:65
void success()
Definition: AdminEventBuilder.java:226
UriInfo uriInfo
Definition: RoleContainerResource.java:69
AdminEventBuilder resourcePath(String... pathElements)
Definition: AdminEventBuilder.java:171
AdminEventBuilder adminEvent
Definition: RoleContainerResource.java:68

◆ deleteComposites() [1/2]

void org.keycloak.services.resources.admin.RoleResource.deleteComposites ( AdminEventBuilder  adminEvent,
UriInfo  uriInfo,
List< RoleRepresentation >  roles,
RoleModel  role 
)
inlineprotectedinherited
114  {
115  for (RoleRepresentation rep : roles) {
116  RoleModel composite = realm.getRoleById(rep.getId());
117  if (composite == null) {
118  throw new NotFoundException("Could not find composite role");
119  }
120  role.removeCompositeRole(composite);
121  }
122 
123  if (role.isClientRole()) {
124  adminEvent.resource(ResourceType.CLIENT_ROLE);
125  } else {
126  adminEvent.resource(ResourceType.REALM_ROLE);
127  }
128 
129  adminEvent.operation(OperationType.DELETE).resourcePath(uriInfo).representation(roles).success();
130  }
RealmModel realm
Definition: RoleResource.java:42

◆ deleteComposites() [2/2]

void org.keycloak.services.resources.admin.RoleContainerResource.deleteComposites ( final @PathParam("role-name") String  roleName,
List< RoleRepresentation >  roles 
)
inline

Remove roles from the role's composite

引数
roleNamerole's name (not id!)
rolesroles to remove
311  {
312 
314  RoleModel role = roleContainer.getRole(roleName);
315  if (role == null) {
316  throw new NotFoundException("Could not find role");
317  }
318  deleteComposites(adminEvent, uriInfo, roles, role);
319  }
void deleteComposites(final @PathParam("role-name") String roleName, List< RoleRepresentation > roles)
Definition: RoleContainerResource.java:309
RoleContainerModel roleContainer
Definition: RoleContainerResource.java:67
AdminPermissionEvaluator auth
Definition: RoleContainerResource.java:65
UriInfo uriInfo
Definition: RoleContainerResource.java:69
AdminEventBuilder adminEvent
Definition: RoleContainerResource.java:68

◆ deleteRole() [1/2]

void org.keycloak.services.resources.admin.RoleResource.deleteRole ( RoleModel  role)
inlineprotectedinherited
52  {
53  if (!role.getContainer().removeRole(role)) {
54  throw new NotFoundException("Role not found");
55  }
56  }

◆ deleteRole() [2/2]

void org.keycloak.services.resources.admin.RoleContainerResource.deleteRole ( final @PathParam("role-name") String  roleName)
inline

Delete a role by name

引数
roleNamerole's name (not id!)
166  {
168  RoleModel role = roleContainer.getRole(roleName);
169  if (role == null) {
170  throw new NotFoundException("Could not find role");
171  }
172  deleteRole(role);
173 
174  if (role.isClientRole()) {
175  adminEvent.resource(ResourceType.CLIENT_ROLE);
176  } else {
177  adminEvent.resource(ResourceType.REALM_ROLE);
178  }
179 
180  adminEvent.operation(OperationType.DELETE).resourcePath(uriInfo).success();
181 
182  }
RoleContainerModel roleContainer
Definition: RoleContainerResource.java:67
AdminEventBuilder resource(ResourceType resourceType)
Definition: AdminEventBuilder.java:118
AdminEventBuilder operation(OperationType operationType)
Definition: AdminEventBuilder.java:113
AdminPermissionEvaluator auth
Definition: RoleContainerResource.java:65
void deleteRole(final @PathParam("role-name") String roleName)
Definition: RoleContainerResource.java:166
void success()
Definition: AdminEventBuilder.java:226
UriInfo uriInfo
Definition: RoleContainerResource.java:69
AdminEventBuilder resourcePath(String... pathElements)
Definition: AdminEventBuilder.java:171
AdminEventBuilder adminEvent
Definition: RoleContainerResource.java:68

◆ getClientRoleComposites() [1/2]

Set<RoleRepresentation> org.keycloak.services.resources.admin.RoleResource.getClientRoleComposites ( ClientModel  app,
RoleModel  role 
)
inlineprotectedinherited
103  {
104  if (!role.isComposite() || role.getComposites().size() == 0) return Collections.emptySet();
105 
106  Set<RoleRepresentation> composites = new HashSet<RoleRepresentation>(role.getComposites().size());
107  for (RoleModel composite : role.getComposites()) {
108  if (composite.getContainer().equals(app))
109  composites.add(ModelToRepresentation.toRepresentation(composite));
110  }
111  return composites;
112  }

◆ getClientRoleComposites() [2/2]

Set<RoleRepresentation> org.keycloak.services.resources.admin.RoleContainerResource.getClientRoleComposites ( final @PathParam("role-name") String  roleName,
final @PathParam("client") String  client 
)
inline

An app-level roles for the specified app for the role's composite

引数
roleNamerole's name (not id!)
client
戻り値
285  {
287  RoleModel role = roleContainer.getRole(roleName);
288  if (role == null) {
289  throw new NotFoundException("Could not find role");
290  }
291  ClientModel clientModel = realm.getClientById(client);
292  if (client == null) {
293  throw new NotFoundException("Could not find client");
294 
295  }
296  return getClientRoleComposites(clientModel, role);
297  }
Set< RoleRepresentation > getClientRoleComposites(final @PathParam("role-name") String roleName, final @PathParam("client") String client)
Definition: RoleContainerResource.java:284
final RealmModel realm
Definition: RoleContainerResource.java:64
RoleContainerModel roleContainer
Definition: RoleContainerResource.java:67
AdminPermissionEvaluator auth
Definition: RoleContainerResource.java:65

◆ getManagementPermissions()

ManagementPermissionReference org.keycloak.services.resources.admin.RoleContainerResource.getManagementPermissions ( final @PathParam("role-name") String  roleName)
inline

Return object stating whether role Authoirzation permissions have been initialized or not and a reference

引数
roleName
戻り値
332  {
334  RoleModel role = roleContainer.getRole(roleName);
335  if (role == null) {
336  throw new NotFoundException("Could not find role");
337  }
338 
339  AdminPermissionManagement permissions = AdminPermissions.management(session, realm);
340  if (!permissions.roles().isPermissionsEnabled(role)) {
341  return new ManagementPermissionReference();
342  }
343  return RoleByIdResource.toMgmtRef(role, permissions);
344  }
KeycloakSession session
Definition: RoleContainerResource.java:70
final RealmModel realm
Definition: RoleContainerResource.java:64
RoleContainerModel roleContainer
Definition: RoleContainerResource.java:67
AdminPermissionEvaluator auth
Definition: RoleContainerResource.java:65

◆ getRealmRoleComposites() [1/2]

Set<RoleRepresentation> org.keycloak.services.resources.admin.RoleResource.getRealmRoleComposites ( RoleModel  role)
inlineprotectedinherited
92  {
93  if (!role.isComposite() || role.getComposites().size() == 0) return Collections.emptySet();
94 
95  Set<RoleRepresentation> composites = new HashSet<RoleRepresentation>(role.getComposites().size());
96  for (RoleModel composite : role.getComposites()) {
97  if (composite.getContainer() instanceof RealmModel)
98  composites.add(ModelToRepresentation.toRepresentation(composite));
99  }
100  return composites;
101  }

◆ getRealmRoleComposites() [2/2]

Set<RoleRepresentation> org.keycloak.services.resources.admin.RoleContainerResource.getRealmRoleComposites ( final @PathParam("role-name") String  roleName)
inline

Get realm-level roles of the role's composite

引数
roleNamerole's name (not id!)
戻り値
264  {
266  RoleModel role = roleContainer.getRole(roleName);
267  if (role == null) {
268  throw new NotFoundException("Could not find role");
269  }
270  return getRealmRoleComposites(role);
271  }
RoleContainerModel roleContainer
Definition: RoleContainerResource.java:67
AdminPermissionEvaluator auth
Definition: RoleContainerResource.java:65
Set< RoleRepresentation > getRealmRoleComposites(final @PathParam("role-name") String roleName)
Definition: RoleContainerResource.java:264

◆ getRole() [1/2]

RoleRepresentation org.keycloak.services.resources.admin.RoleResource.getRole ( RoleModel  roleModel)
inlineprotectedinherited
48  {
49  return ModelToRepresentation.toRepresentation(roleModel);
50  }

◆ getRole() [2/2]

RoleRepresentation org.keycloak.services.resources.admin.RoleContainerResource.getRole ( final @PathParam("role-name") String  roleName)
inline

Get a role by name

引数
roleNamerole's name (not id!)
戻り値
147  {
149 
150  RoleModel roleModel = roleContainer.getRole(roleName);
151  if (roleModel == null) {
152  throw new NotFoundException("Could not find role");
153  }
154 
155  return getRole(roleModel);
156  }
RoleContainerModel roleContainer
Definition: RoleContainerResource.java:67
AdminPermissionEvaluator auth
Definition: RoleContainerResource.java:65
RoleRepresentation getRole(final @PathParam("role-name") String roleName)
Definition: RoleContainerResource.java:147

◆ getRoleComposites() [1/2]

Set<RoleRepresentation> org.keycloak.services.resources.admin.RoleResource.getRoleComposites ( RoleModel  role)
inlineprotectedinherited
82  {
83  if (!role.isComposite() || role.getComposites().size() == 0) return Collections.emptySet();
84 
85  Set<RoleRepresentation> composites = new HashSet<RoleRepresentation>(role.getComposites().size());
86  for (RoleModel composite : role.getComposites()) {
87  composites.add(ModelToRepresentation.toRepresentation(composite));
88  }
89  return composites;
90  }

◆ getRoleComposites() [2/2]

Set<RoleRepresentation> org.keycloak.services.resources.admin.RoleContainerResource.getRoleComposites ( final @PathParam("role-name") String  roleName)
inline

Get composites of the role

引数
roleNamerole's name (not id!)
戻り値
245  {
247  RoleModel role = roleContainer.getRole(roleName);
248  if (role == null) {
249  throw new NotFoundException("Could not find role");
250  }
251  return getRoleComposites(role);
252  }
RoleContainerModel roleContainer
Definition: RoleContainerResource.java:67
AdminPermissionEvaluator auth
Definition: RoleContainerResource.java:65
Set< RoleRepresentation > getRoleComposites(final @PathParam("role-name") String roleName)
Definition: RoleContainerResource.java:245

◆ getRoles()

List<RoleRepresentation> org.keycloak.services.resources.admin.RoleContainerResource.getRoles ( )
inline

Get all roles for the realm or client

戻り値
91  {
93 
94  Set<RoleModel> roleModels = roleContainer.getRoles();
95  List<RoleRepresentation> roles = new ArrayList<RoleRepresentation>();
96  for (RoleModel roleModel : roleModels) {
97  roles.add(ModelToRepresentation.toRepresentation(roleModel));
98  }
99  return roles;
100  }
RoleContainerModel roleContainer
Definition: RoleContainerResource.java:67
AdminPermissionEvaluator auth
Definition: RoleContainerResource.java:65

◆ getUsersInRole()

List<UserRepresentation> org.keycloak.services.resources.admin.RoleContainerResource.getUsersInRole ( final @PathParam("role-name") String  roleName,
@QueryParam("first") Integer  firstResult,
@QueryParam("max") Integer  maxResults 
)
inline

Return List of Users that have the specified role name

引数
roleName
firstResult
maxResults
戻り値
initialized manage permissions reference
389  {
390 
392  firstResult = firstResult != null ? firstResult : 0;
393  maxResults = maxResults != null ? maxResults : Constants.DEFAULT_MAX_RESULTS;
394 
395  RoleModel role = roleContainer.getRole(roleName);
396  List<UserRepresentation> results = new ArrayList<UserRepresentation>();
397  List<UserModel> userModels = session.users().getRoleMembers(realm, role, firstResult, maxResults);
398 
399  for (UserModel user : userModels) {
400  results.add(ModelToRepresentation.toRepresentation(session, realm, user));
401  }
402  return results;
403 
404  }
KeycloakSession session
Definition: RoleContainerResource.java:70
final RealmModel realm
Definition: RoleContainerResource.java:64
RoleContainerModel roleContainer
Definition: RoleContainerResource.java:67
AdminPermissionEvaluator auth
Definition: RoleContainerResource.java:65

◆ setManagementPermissionsEnabled()

ManagementPermissionReference org.keycloak.services.resources.admin.RoleContainerResource.setManagementPermissionsEnabled ( final @PathParam("role-name") String  roleName,
ManagementPermissionReference  ref 
)
inline

Return object stating whether role Authoirzation permissions have been initialized or not and a reference

引数
roleName
戻り値
initialized manage permissions reference
358  {
360  RoleModel role = roleContainer.getRole(roleName);
361  if (role == null) {
362  throw new NotFoundException("Could not find role");
363  }
364 
365  AdminPermissionManagement permissions = AdminPermissions.management(session, realm);
366  permissions.roles().setPermissionsEnabled(role, ref.isEnabled());
367  if (ref.isEnabled()) {
368  return RoleByIdResource.toMgmtRef(role, permissions);
369  } else {
370  return new ManagementPermissionReference();
371  }
372  }
KeycloakSession session
Definition: RoleContainerResource.java:70
final RealmModel realm
Definition: RoleContainerResource.java:64
RoleContainerModel roleContainer
Definition: RoleContainerResource.java:67
AdminPermissionEvaluator auth
Definition: RoleContainerResource.java:65

◆ updateRole() [1/2]

void org.keycloak.services.resources.admin.RoleResource.updateRole ( RoleRepresentation  rep,
RoleModel  role 
)
inlineprotectedinherited
58  {
59  role.setName(rep.getName());
60  role.setDescription(rep.getDescription());
61  }

◆ updateRole() [2/2]

Response org.keycloak.services.resources.admin.RoleContainerResource.updateRole ( final @PathParam("role-name") String  roleName,
final RoleRepresentation  rep 
)
inline

Update a role by name

引数
roleNamerole's name (not id!)
rep
戻り値
194  {
196  RoleModel role = roleContainer.getRole(roleName);
197  if (role == null) {
198  throw new NotFoundException("Could not find role");
199  }
200  try {
201  updateRole(rep, role);
202 
203  if (role.isClientRole()) {
204  adminEvent.resource(ResourceType.CLIENT_ROLE);
205  } else {
206  adminEvent.resource(ResourceType.REALM_ROLE);
207  }
208 
209  adminEvent.operation(OperationType.UPDATE).resourcePath(uriInfo).representation(rep).success();
210 
211  return Response.noContent().build();
212  } catch (ModelDuplicateException e) {
213  return ErrorResponse.exists("Role with name " + rep.getName() + " already exists");
214  }
215  }
Response updateRole(final @PathParam("role-name") String roleName, final RoleRepresentation rep)
Definition: RoleContainerResource.java:194
RoleContainerModel roleContainer
Definition: RoleContainerResource.java:67
AdminEventBuilder resource(ResourceType resourceType)
Definition: AdminEventBuilder.java:118
AdminEventBuilder operation(OperationType operationType)
Definition: AdminEventBuilder.java:113
AdminPermissionEvaluator auth
Definition: RoleContainerResource.java:65
void success()
Definition: AdminEventBuilder.java:226
UriInfo uriInfo
Definition: RoleContainerResource.java:69
AdminEventBuilder resourcePath(String... pathElements)
Definition: AdminEventBuilder.java:171
AdminEventBuilder adminEvent
Definition: RoleContainerResource.java:68
AdminEventBuilder representation(Object value)
Definition: AdminEventBuilder.java:210

メンバ詳解

◆ adminEvent

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

◆ auth

AdminPermissionEvaluator org.keycloak.services.resources.admin.RoleContainerResource.auth
protected

◆ realm

final RealmModel org.keycloak.services.resources.admin.RoleContainerResource.realm
private

◆ roleContainer

RoleContainerModel org.keycloak.services.resources.admin.RoleContainerResource.roleContainer
protected

◆ session

KeycloakSession org.keycloak.services.resources.admin.RoleContainerResource.session
private

◆ uriInfo

UriInfo org.keycloak.services.resources.admin.RoleContainerResource.uriInfo
private

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