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

公開メンバ関数

 ClientRoleMappingsResource (UriInfo uriInfo, KeycloakSession session, RealmModel realm, AdminPermissionEvaluator auth, RoleMapperModel user, ClientModel client, AdminEventBuilder adminEvent, AdminPermissionEvaluator.RequirePermissionCheck manageCheck, AdminPermissionEvaluator.RequirePermissionCheck viewCheck)
 
List< RoleRepresentation > getClientRoleMappings ()
 
List< RoleRepresentation > getCompositeClientRoleMappings ()
 
List< RoleRepresentation > getAvailableClientRoleMappings ()
 
void addClientRoleMapping (List< RoleRepresentation > roles)
 
void deleteClientRoleMapping (List< RoleRepresentation > roles)
 

静的公開メンバ関数

static List< RoleRepresentation > getAvailableRoles (RoleMapperModel mapper, Set< RoleModel > available)
 

限定公開変数類

KeycloakSession session
 
RealmModel realm
 
AdminPermissionEvaluator auth
 
RoleMapperModel user
 
ClientModel client
 
AdminEventBuilder adminEvent
 
AdminPermissionEvaluator.RequirePermissionCheck managePermission
 
AdminPermissionEvaluator.RequirePermissionCheck viewPermission
 

静的限定公開変数類

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

非公開変数類

UriInfo uriInfo
 

詳解

Client Role Mappings

著者
Bill Burke
バージョン
Revision
1

構築子と解体子

◆ ClientRoleMappingsResource()

org.keycloak.services.resources.admin.ClientRoleMappingsResource.ClientRoleMappingsResource ( UriInfo  uriInfo,
KeycloakSession  session,
RealmModel  realm,
AdminPermissionEvaluator  auth,
RoleMapperModel  user,
ClientModel  client,
AdminEventBuilder  adminEvent,
AdminPermissionEvaluator.RequirePermissionCheck  manageCheck,
AdminPermissionEvaluator.RequirePermissionCheck  viewCheck 
)
inline
75  {
76  this.uriInfo = uriInfo;
77  this.session = session;
78  this.realm = realm;
79  this.auth = auth;
80  this.user = user;
81  this.client = client;
82  this.managePermission = manageCheck;
83  this.viewPermission = viewCheck;
84  this.adminEvent = adminEvent.resource(ResourceType.CLIENT_ROLE_MAPPING);
85  }
RealmModel realm
Definition: ClientRoleMappingsResource.java:63
AdminPermissionEvaluator.RequirePermissionCheck managePermission
Definition: ClientRoleMappingsResource.java:69
UriInfo uriInfo
Definition: ClientRoleMappingsResource.java:68
AdminEventBuilder adminEvent
Definition: ClientRoleMappingsResource.java:67
ClientModel client
Definition: ClientRoleMappingsResource.java:66
AdminPermissionEvaluator auth
Definition: ClientRoleMappingsResource.java:64
AdminEventBuilder resource(ResourceType resourceType)
Definition: AdminEventBuilder.java:118
KeycloakSession session
Definition: ClientRoleMappingsResource.java:62
AdminPermissionEvaluator.RequirePermissionCheck viewPermission
Definition: ClientRoleMappingsResource.java:70
RoleMapperModel user
Definition: ClientRoleMappingsResource.java:65

関数詳解

◆ addClientRoleMapping()

void org.keycloak.services.resources.admin.ClientRoleMappingsResource.addClientRoleMapping ( List< RoleRepresentation >  roles)
inline

Add client-level roles to the user role mapping

引数
roles
169  {
170  managePermission.require();
171 
172  for (RoleRepresentation role : roles) {
173  RoleModel roleModel = client.getRole(role.getName());
174  if (roleModel == null || !roleModel.getId().equals(role.getId())) {
175  throw new NotFoundException("Role not found");
176  }
177  auth.roles().requireMapRole(roleModel);
178  user.grantRole(roleModel);
179  }
180  adminEvent.operation(OperationType.CREATE).resourcePath(uriInfo).representation(roles).success();
181 
182  }
AdminPermissionEvaluator.RequirePermissionCheck managePermission
Definition: ClientRoleMappingsResource.java:69
UriInfo uriInfo
Definition: ClientRoleMappingsResource.java:68
AdminEventBuilder adminEvent
Definition: ClientRoleMappingsResource.java:67
ClientModel client
Definition: ClientRoleMappingsResource.java:66
AdminPermissionEvaluator auth
Definition: ClientRoleMappingsResource.java:64
AdminEventBuilder operation(OperationType operationType)
Definition: AdminEventBuilder.java:113
void success()
Definition: AdminEventBuilder.java:226
AdminEventBuilder resourcePath(String... pathElements)
Definition: AdminEventBuilder.java:171
AdminEventBuilder representation(Object value)
Definition: AdminEventBuilder.java:210
RoleMapperModel user
Definition: ClientRoleMappingsResource.java:65

◆ deleteClientRoleMapping()

void org.keycloak.services.resources.admin.ClientRoleMappingsResource.deleteClientRoleMapping ( List< RoleRepresentation >  roles)
inline

Delete client-level roles from user role mapping

引数
roles
191  {
192  managePermission.require();
193 
194  if (roles == null) {
195  Set<RoleModel> roleModels = user.getClientRoleMappings(client);
196  roles = new LinkedList<>();
197 
198  for (RoleModel roleModel : roleModels) {
199  if (roleModel.getContainer() instanceof ClientModel) {
200  ClientModel client = (ClientModel) roleModel.getContainer();
201  if (!client.getId().equals(this.client.getId())) continue;
202  }
203  auth.roles().requireMapRole(roleModel);
204  user.deleteRoleMapping(roleModel);
205  roles.add(ModelToRepresentation.toRepresentation(roleModel));
206  }
207 
208  } else {
209  for (RoleRepresentation role : roles) {
210  RoleModel roleModel = client.getRole(role.getName());
211  if (roleModel == null || !roleModel.getId().equals(role.getId())) {
212  throw new NotFoundException("Role not found");
213  }
214 
215  auth.roles().requireMapRole(roleModel);
216  try {
217  user.deleteRoleMapping(roleModel);
218  } catch (ModelException me) {
219  Properties messages = AdminRoot.getMessages(session, realm, auth.adminAuth().getToken().getLocale());
220  throw new ErrorResponseException(me.getMessage(), MessageFormat.format(messages.getProperty(me.getMessage(), me.getMessage()), me.getParameters()),
221  Response.Status.BAD_REQUEST);
222  }
223  }
224  }
225 
226  adminEvent.operation(OperationType.DELETE).resourcePath(uriInfo).representation(roles).success();
227  }
RealmModel realm
Definition: ClientRoleMappingsResource.java:63
AdminPermissionEvaluator.RequirePermissionCheck managePermission
Definition: ClientRoleMappingsResource.java:69
UriInfo uriInfo
Definition: ClientRoleMappingsResource.java:68
AccessToken getToken()
Definition: AdminAuth.java:56
AdminEventBuilder adminEvent
Definition: ClientRoleMappingsResource.java:67
ClientModel client
Definition: ClientRoleMappingsResource.java:66
AdminPermissionEvaluator auth
Definition: ClientRoleMappingsResource.java:64
AdminEventBuilder operation(OperationType operationType)
Definition: AdminEventBuilder.java:113
void success()
Definition: AdminEventBuilder.java:226
AdminEventBuilder resourcePath(String... pathElements)
Definition: AdminEventBuilder.java:171
KeycloakSession session
Definition: ClientRoleMappingsResource.java:62
AdminEventBuilder representation(Object value)
Definition: AdminEventBuilder.java:210
RoleMapperModel user
Definition: ClientRoleMappingsResource.java:65

◆ getAvailableClientRoleMappings()

List<RoleRepresentation> org.keycloak.services.resources.admin.ClientRoleMappingsResource.getAvailableClientRoleMappings ( )
inline

Get available client-level roles that can be mapped to the user

戻り値
138  {
139  viewPermission.require();
140 
141  Set<RoleModel> available = client.getRoles();
142  available = available.stream().filter(r ->
143  auth.roles().canMapRole(r)
144  ).collect(Collectors.toSet());
145  return getAvailableRoles(user, available);
146  }
ClientModel client
Definition: ClientRoleMappingsResource.java:66
AdminPermissionEvaluator auth
Definition: ClientRoleMappingsResource.java:64
AdminPermissionEvaluator.RequirePermissionCheck viewPermission
Definition: ClientRoleMappingsResource.java:70
static List< RoleRepresentation > getAvailableRoles(RoleMapperModel mapper, Set< RoleModel > available)
Definition: ClientRoleMappingsResource.java:148
RoleMapperModel user
Definition: ClientRoleMappingsResource.java:65

◆ getAvailableRoles()

static List<RoleRepresentation> org.keycloak.services.resources.admin.ClientRoleMappingsResource.getAvailableRoles ( RoleMapperModel  mapper,
Set< RoleModel >  available 
)
inlinestatic
148  {
149  Set<RoleModel> roles = new HashSet<RoleModel>();
150  for (RoleModel roleModel : available) {
151  if (mapper.hasRole(roleModel)) continue;
152  roles.add(roleModel);
153  }
154 
155  List<RoleRepresentation> mappings = new ArrayList<RoleRepresentation>();
156  for (RoleModel roleModel : roles) {
157  mappings.add(ModelToRepresentation.toRepresentation(roleModel));
158  }
159  return mappings;
160  }

◆ getClientRoleMappings()

List<RoleRepresentation> org.keycloak.services.resources.admin.ClientRoleMappingsResource.getClientRoleMappings ( )
inline

Get client-level role mappings for the user, and the app

戻り値
95  {
96  viewPermission.require();
97 
98  Set<RoleModel> mappings = user.getClientRoleMappings(client);
99  List<RoleRepresentation> mapRep = new ArrayList<RoleRepresentation>();
100  for (RoleModel roleModel : mappings) {
101  mapRep.add(ModelToRepresentation.toRepresentation(roleModel));
102  }
103  return mapRep;
104  }
ClientModel client
Definition: ClientRoleMappingsResource.java:66
AdminPermissionEvaluator.RequirePermissionCheck viewPermission
Definition: ClientRoleMappingsResource.java:70
RoleMapperModel user
Definition: ClientRoleMappingsResource.java:65

◆ getCompositeClientRoleMappings()

List<RoleRepresentation> org.keycloak.services.resources.admin.ClientRoleMappingsResource.getCompositeClientRoleMappings ( )
inline

Get effective client-level role mappings

This recurses any composite roles

戻り値
117  {
118  viewPermission.require();
119 
120 
121  Set<RoleModel> roles = client.getRoles();
122  List<RoleRepresentation> mapRep = new ArrayList<RoleRepresentation>();
123  for (RoleModel roleModel : roles) {
124  if (user.hasRole(roleModel)) mapRep.add(ModelToRepresentation.toRepresentation(roleModel));
125  }
126  return mapRep;
127  }
ClientModel client
Definition: ClientRoleMappingsResource.java:66
AdminPermissionEvaluator.RequirePermissionCheck viewPermission
Definition: ClientRoleMappingsResource.java:70
RoleMapperModel user
Definition: ClientRoleMappingsResource.java:65

メンバ詳解

◆ adminEvent

AdminEventBuilder org.keycloak.services.resources.admin.ClientRoleMappingsResource.adminEvent
protected

◆ auth

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

◆ client

ClientModel org.keycloak.services.resources.admin.ClientRoleMappingsResource.client
protected

◆ logger

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

◆ managePermission

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

◆ realm

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

◆ session

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

◆ uriInfo

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

◆ user

RoleMapperModel org.keycloak.services.resources.admin.ClientRoleMappingsResource.user
protected

◆ viewPermission

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

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