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

公開メンバ関数

 RoleMapperResource (RealmModel realm, AdminPermissionEvaluator auth, RoleMapperModel roleMapper, AdminEventBuilder adminEvent, AdminPermissionEvaluator.RequirePermissionCheck manageCheck, AdminPermissionEvaluator.RequirePermissionCheck viewCheck)
 
MappingsRepresentation getRoleMappings ()
 
List< RoleRepresentation > getRealmRoleMappings ()
 
List< RoleRepresentation > getCompositeRealmRoleMappings ()
 
List< RoleRepresentation > getAvailableRealmRoleMappings ()
 
void addRealmRoleMappings (List< RoleRepresentation > roles)
 
void deleteRealmRoleMappings (List< RoleRepresentation > roles)
 
ClientRoleMappingsResource getUserClientRoleMappingsResource (@PathParam("client") String client)
 

限定公開変数類

RealmModel realm
 
AdminPermissionEvaluator.RequirePermissionCheck managePermission
 
AdminPermissionEvaluator.RequirePermissionCheck viewPermission
 
ClientConnection clientConnection
 
KeycloakSession session
 
HttpHeaders headers
 

静的限定公開変数類

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

非公開メンバ関数

boolean canMapRole (RoleModel roleModel)
 

非公開変数類

RoleMapperModel roleMapper
 
AdminEventBuilder adminEvent
 
AdminPermissionEvaluator auth
 

詳解

Base resource for managing users

Role Mapper

著者
Bill Burke
バージョン
Revision
1

構築子と解体子

◆ RoleMapperResource()

org.keycloak.services.resources.admin.RoleMapperResource.RoleMapperResource ( RealmModel  realm,
AdminPermissionEvaluator  auth,
RoleMapperModel  roleMapper,
AdminEventBuilder  adminEvent,
AdminPermissionEvaluator.RequirePermissionCheck  manageCheck,
AdminPermissionEvaluator.RequirePermissionCheck  viewCheck 
)
inline
95  {
96  this.auth = auth;
97  this.realm = realm;
98  this.adminEvent = adminEvent.resource(ResourceType.REALM_ROLE_MAPPING);
99  this.roleMapper = roleMapper;
100  this.managePermission = manageCheck;
101  this.viewPermission = viewCheck;
102 
103  }
RealmModel realm
Definition: RoleMapperResource.java:71
AdminPermissionEvaluator.RequirePermissionCheck managePermission
Definition: RoleMapperResource.java:77
AdminPermissionEvaluator.RequirePermissionCheck viewPermission
Definition: RoleMapperResource.java:78
AdminEventBuilder adminEvent
Definition: RoleMapperResource.java:75
RoleMapperModel roleMapper
Definition: RoleMapperResource.java:73
AdminEventBuilder resource(ResourceType resourceType)
Definition: AdminEventBuilder.java:118
AdminPermissionEvaluator auth
Definition: RoleMapperResource.java:79

関数詳解

◆ addRealmRoleMappings()

void org.keycloak.services.resources.admin.RoleMapperResource.addRealmRoleMappings ( List< RoleRepresentation >  roles)
inline

Add realm-level role mappings to the user

引数
rolesRoles to add
220  {
221  managePermission.require();
222 
223  logger.debugv("** addRealmRoleMappings: {0}", roles);
224 
225  for (RoleRepresentation role : roles) {
226  RoleModel roleModel = realm.getRole(role.getName());
227  if (roleModel == null || !roleModel.getId().equals(role.getId())) {
228  throw new NotFoundException("Role not found");
229  }
230  auth.roles().requireMapRole(roleModel);
231  roleMapper.grantRole(roleModel);
232  }
233 
234  adminEvent.operation(OperationType.CREATE).resourcePath(session.getContext().getUri()).representation(roles).success();
235  }
RealmModel realm
Definition: RoleMapperResource.java:71
AdminPermissionEvaluator.RequirePermissionCheck managePermission
Definition: RoleMapperResource.java:77
AdminEventBuilder adminEvent
Definition: RoleMapperResource.java:75
KeycloakSession session
Definition: RoleMapperResource.java:85
RoleMapperModel roleMapper
Definition: RoleMapperResource.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: RoleMapperResource.java:79
static final Logger logger
Definition: RoleMapperResource.java:69

◆ canMapRole()

boolean org.keycloak.services.resources.admin.RoleMapperResource.canMapRole ( RoleModel  roleModel)
inlineprivate
281  {
282  return auth.roles().canMapRole(roleModel);
283  }
AdminPermissionEvaluator auth
Definition: RoleMapperResource.java:79

◆ deleteRealmRoleMappings()

void org.keycloak.services.resources.admin.RoleMapperResource.deleteRealmRoleMappings ( List< RoleRepresentation >  roles)
inline

Delete realm-level role mappings

引数
roles
245  {
246  managePermission.require();
247 
248  logger.debug("deleteRealmRoleMappings");
249  if (roles == null) {
250  Set<RoleModel> roleModels = roleMapper.getRealmRoleMappings();
251  roles = new LinkedList<>();
252 
253  for (RoleModel roleModel : roleModels) {
254  auth.roles().requireMapRole(roleModel);
255  roleMapper.deleteRoleMapping(roleModel);
256  roles.add(ModelToRepresentation.toRepresentation(roleModel));
257  }
258 
259  } else {
260  for (RoleRepresentation role : roles) {
261  RoleModel roleModel = realm.getRole(role.getName());
262  if (roleModel == null || !roleModel.getId().equals(role.getId())) {
263  throw new NotFoundException("Role not found");
264  }
265  auth.roles().requireMapRole(roleModel);
266  try {
267  roleMapper.deleteRoleMapping(roleModel);
268  } catch (ModelException me) {
269  Properties messages = AdminRoot.getMessages(session, realm, auth.adminAuth().getToken().getLocale());
270  throw new ErrorResponseException(me.getMessage(), MessageFormat.format(messages.getProperty(me.getMessage(), me.getMessage()), me.getParameters()),
271  Response.Status.BAD_REQUEST);
272  }
273  }
274 
275  }
276 
277  adminEvent.operation(OperationType.DELETE).resourcePath(session.getContext().getUri()).representation(roles).success();
278 
279  }
RealmModel realm
Definition: RoleMapperResource.java:71
AdminPermissionEvaluator.RequirePermissionCheck managePermission
Definition: RoleMapperResource.java:77
AccessToken getToken()
Definition: AdminAuth.java:56
AdminEventBuilder adminEvent
Definition: RoleMapperResource.java:75
KeycloakSession session
Definition: RoleMapperResource.java:85
RoleMapperModel roleMapper
Definition: RoleMapperResource.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: RoleMapperResource.java:79
static final Logger logger
Definition: RoleMapperResource.java:69

◆ getAvailableRealmRoleMappings()

List<RoleRepresentation> org.keycloak.services.resources.admin.RoleMapperResource.getAvailableRealmRoleMappings ( )
inline

Get realm-level roles that can be mapped

戻り値
202  {
203  viewPermission.require();
204 
205  Set<RoleModel> available = realm.getRoles();
206  Set<RoleModel> set = available.stream().filter(r ->
207  canMapRole(r)
208  ).collect(Collectors.toSet());
209  return ClientRoleMappingsResource.getAvailableRoles(roleMapper, set);
210  }
RealmModel realm
Definition: RoleMapperResource.java:71
AdminPermissionEvaluator.RequirePermissionCheck viewPermission
Definition: RoleMapperResource.java:78
RoleMapperModel roleMapper
Definition: RoleMapperResource.java:73
boolean canMapRole(RoleModel roleModel)
Definition: RoleMapperResource.java:281

◆ getCompositeRealmRoleMappings()

List<RoleRepresentation> org.keycloak.services.resources.admin.RoleMapperResource.getCompositeRealmRoleMappings ( )
inline

Get effective realm-level role mappings

This will recurse all composite roles to get the result.

戻り値
180  {
181  viewPermission.require();
182 
183  Set<RoleModel> roles = realm.getRoles();
184  List<RoleRepresentation> realmMappingsRep = new ArrayList<RoleRepresentation>();
185  for (RoleModel roleModel : roles) {
186  if (roleMapper.hasRole(roleModel)) {
187  realmMappingsRep.add(ModelToRepresentation.toRepresentation(roleModel));
188  }
189  }
190  return realmMappingsRep;
191  }
RealmModel realm
Definition: RoleMapperResource.java:71
AdminPermissionEvaluator.RequirePermissionCheck viewPermission
Definition: RoleMapperResource.java:78
RoleMapperModel roleMapper
Definition: RoleMapperResource.java:73

◆ getRealmRoleMappings()

List<RoleRepresentation> org.keycloak.services.resources.admin.RoleMapperResource.getRealmRoleMappings ( )
inline

Get realm-level role mappings

戻り値
158  {
159  viewPermission.require();
160 
161  Set<RoleModel> realmMappings = roleMapper.getRealmRoleMappings();
162  List<RoleRepresentation> realmMappingsRep = new ArrayList<RoleRepresentation>();
163  for (RoleModel roleModel : realmMappings) {
164  realmMappingsRep.add(ModelToRepresentation.toRepresentation(roleModel));
165  }
166  return realmMappingsRep;
167  }
AdminPermissionEvaluator.RequirePermissionCheck viewPermission
Definition: RoleMapperResource.java:78
RoleMapperModel roleMapper
Definition: RoleMapperResource.java:73

◆ getRoleMappings()

MappingsRepresentation org.keycloak.services.resources.admin.RoleMapperResource.getRoleMappings ( )
inline

Get role mappings

戻り値
113  {
114  viewPermission.require();
115 
116  MappingsRepresentation all = new MappingsRepresentation();
117  Set<RoleModel> realmMappings = roleMapper.getRealmRoleMappings();
118  RealmManager manager = new RealmManager(session);
119  if (realmMappings.size() > 0) {
120  List<RoleRepresentation> realmRep = new ArrayList<RoleRepresentation>();
121  for (RoleModel roleModel : realmMappings) {
122  realmRep.add(ModelToRepresentation.toRepresentation(roleModel));
123  }
124  all.setRealmMappings(realmRep);
125  }
126 
127  List<ClientModel> clients = realm.getClients();
128  if (clients.size() > 0) {
129  Map<String, ClientMappingsRepresentation> appMappings = new HashMap<String, ClientMappingsRepresentation>();
130  for (ClientModel client : clients) {
131  Set<RoleModel> roleMappings = roleMapper.getClientRoleMappings(client);
132  if (roleMappings.size() > 0) {
133  ClientMappingsRepresentation mappings = new ClientMappingsRepresentation();
134  mappings.setId(client.getId());
135  mappings.setClient(client.getClientId());
136  List<RoleRepresentation> roles = new ArrayList<RoleRepresentation>();
137  mappings.setMappings(roles);
138  for (RoleModel role : roleMappings) {
139  roles.add(ModelToRepresentation.toRepresentation(role));
140  }
141  appMappings.put(client.getClientId(), mappings);
142  all.setClientMappings(appMappings);
143  }
144  }
145  }
146  return all;
147  }
RealmModel realm
Definition: RoleMapperResource.java:71
AdminPermissionEvaluator.RequirePermissionCheck viewPermission
Definition: RoleMapperResource.java:78
KeycloakSession session
Definition: RoleMapperResource.java:85
RoleMapperModel roleMapper
Definition: RoleMapperResource.java:73

◆ getUserClientRoleMappingsResource()

ClientRoleMappingsResource org.keycloak.services.resources.admin.RoleMapperResource.getUserClientRoleMappingsResource ( @PathParam("client") String  client)
inline
286  {
287  ClientModel clientModel = realm.getClientById(client);
288  if (clientModel == null) {
289  throw new NotFoundException("Client not found");
290  }
291  ClientRoleMappingsResource resource = new ClientRoleMappingsResource(session.getContext().getUri(), session, realm, auth, roleMapper,
292  clientModel, adminEvent,
294  return resource;
295 
296  }
RealmModel realm
Definition: RoleMapperResource.java:71
AdminPermissionEvaluator.RequirePermissionCheck managePermission
Definition: RoleMapperResource.java:77
AdminPermissionEvaluator.RequirePermissionCheck viewPermission
Definition: RoleMapperResource.java:78
AdminEventBuilder adminEvent
Definition: RoleMapperResource.java:75
KeycloakSession session
Definition: RoleMapperResource.java:85
RoleMapperModel roleMapper
Definition: RoleMapperResource.java:73
AdminPermissionEvaluator auth
Definition: RoleMapperResource.java:79

メンバ詳解

◆ adminEvent

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

◆ auth

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

◆ clientConnection

ClientConnection org.keycloak.services.resources.admin.RoleMapperResource.clientConnection
protected

◆ headers

HttpHeaders org.keycloak.services.resources.admin.RoleMapperResource.headers
protected

◆ logger

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

◆ managePermission

AdminPermissionEvaluator.RequirePermissionCheck org.keycloak.services.resources.admin.RoleMapperResource.managePermission
protected

◆ realm

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

◆ roleMapper

RoleMapperModel org.keycloak.services.resources.admin.RoleMapperResource.roleMapper
private

◆ session

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

◆ viewPermission

AdminPermissionEvaluator.RequirePermissionCheck org.keycloak.services.resources.admin.RoleMapperResource.viewPermission
protected

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