keycloak-oidc-service
公開メンバ関数 | 非公開メンバ関数 | 非公開変数類 | 全メンバ一覧
org.keycloak.partialimport.RolesPartialImport クラス
org.keycloak.partialimport.RolesPartialImport の継承関係図
Inheritance graph
org.keycloak.partialimport.RolesPartialImport 連携図
Collaboration graph

公開メンバ関数

void prepare (PartialImportRepresentation rep, RealmModel realm, KeycloakSession session) throws ErrorResponseException
 
void removeOverwrites (RealmModel realm, KeycloakSession session)
 
PartialImportResults doImport (PartialImportRepresentation rep, RealmModel realm, KeycloakSession session) throws ErrorResponseException
 

非公開メンバ関数

void prepareRealmRoles (PartialImportRepresentation rep, RealmModel realm, KeycloakSession session) throws ErrorResponseException
 
void prepareClientRoles (PartialImportRepresentation rep, RealmModel realm, KeycloakSession session) throws ErrorResponseException
 
void setUniqueIds (List< RoleRepresentation > realmRoles)
 
void setUniqueIds (Map< String, List< RoleRepresentation >> clientRoles)
 
void removeRealmRoleSkips (PartialImportResults results, PartialImportRepresentation rep, RealmModel realm, KeycloakSession session)
 
void removeClientRoleSkips (PartialImportResults results, PartialImportRepresentation rep, RealmModel realm)
 
void deleteRealmRoleOverwrites (RealmModel realm, KeycloakSession session)
 
void addResultsForOverwrittenRealmRoles (PartialImportResults results, RealmModel realm, KeycloakSession session)
 
void deleteClientRoleOverwrites (RealmModel realm)
 
void addResultsForOverwrittenClientRoles (PartialImportResults results, RealmModel realm)
 
boolean isEmpty (Set set)
 
boolean isEmpty (Map map)
 
void realmRoleAdds (PartialImportResults results, PartialImportRepresentation rep, RealmModel realm, KeycloakSession session)
 
void clientRoleAdds (PartialImportResults results, PartialImportRepresentation rep, RealmModel realm)
 

非公開変数類

Set< RoleRepresentation > realmRolesToOverwrite
 
Set< RoleRepresentation > realmRolesToSkip
 
Map< String, Set< RoleRepresentation > > clientRolesToOverwrite
 
Map< String, Set< RoleRepresentation > > clientRolesToSkip
 
final RealmRolesPartialImport realmRolesPI = new RealmRolesPartialImport()
 
final ClientRolesPartialImport clientRolesPI = new ClientRolesPartialImport()
 

詳解

This class handles both realm roles and client roles. It delegates to RealmRolesPartialImport and ClientRolesPartialImport, which are no longer used directly by the PartialImportManager.

The strategy is to utilize RepresentationToModel.importRoles(). That way, the complex code for bulk creation of roles is kept in one place. To do this, the logic for skip needs to remove the roles that are going to be skipped so that importRoles() doesn't know about them. The logic for overwrite needs to delete the overwritten roles before importRoles() is called.

著者
Stan Silvert ssilv.nosp@m.ert@.nosp@m.redha.nosp@m.t.co.nosp@m.m (C) 2016 Red Hat Inc.

関数詳解

◆ addResultsForOverwrittenClientRoles()

void org.keycloak.partialimport.RolesPartialImport.addResultsForOverwrittenClientRoles ( PartialImportResults  results,
RealmModel  realm 
)
inlineprivate
183  {
184  if (isEmpty(clientRolesToOverwrite)) return;
185 
186  for (String clientId : clientRolesToOverwrite.keySet()) {
187  for (RoleRepresentation roleRep : clientRolesToOverwrite.get(clientId)) {
188  String modelId = clientRolesPI.getModelId(realm, clientId);
189  results.addResult(clientRolesPI.overwritten(clientId, modelId, roleRep));
190  }
191  }
192  }
Map< String, Set< RoleRepresentation > > clientRolesToOverwrite
Definition: RolesPartialImport.java:52
String getModelId(RealmModel realm, String clientId)
Definition: ClientRolesPartialImport.java:165
boolean isEmpty(Set set)
Definition: RolesPartialImport.java:194
PartialImportResult overwritten(String clientId, String modelId, RoleRepresentation roleRep)
Definition: ClientRolesPartialImport.java:153
final ClientRolesPartialImport clientRolesPI
Definition: RolesPartialImport.java:56

◆ addResultsForOverwrittenRealmRoles()

void org.keycloak.partialimport.RolesPartialImport.addResultsForOverwrittenRealmRoles ( PartialImportResults  results,
RealmModel  realm,
KeycloakSession  session 
)
inlineprivate
164  {
165  if (isEmpty(realmRolesToOverwrite)) return;
166 
167  for (RoleRepresentation roleRep : realmRolesToOverwrite) {
168  String modelId = realmRolesPI.getModelId(realm, session, roleRep);
169  results.addResult(realmRolesPI.overwritten(modelId, roleRep));
170  }
171  }
final RealmRolesPartialImport realmRolesPI
Definition: RolesPartialImport.java:55
PartialImportResult overwritten(String modelId, T resourceRep)
Definition: AbstractPartialImport.java:73
boolean isEmpty(Set set)
Definition: RolesPartialImport.java:194
String getModelId(RealmModel realm, KeycloakSession session, RoleRepresentation roleRep)
Definition: RealmRolesPartialImport.java:58
Set< RoleRepresentation > realmRolesToOverwrite
Definition: RolesPartialImport.java:49

◆ clientRoleAdds()

void org.keycloak.partialimport.RolesPartialImport.clientRoleAdds ( PartialImportResults  results,
PartialImportRepresentation  rep,
RealmModel  realm 
)
inlineprivate
219  {
220  if (!rep.hasClientRoles()) return;
221 
222  Map<String, List<RoleRepresentation>> repList = clientRolesPI.getRepList(rep);
223  for (String clientId : repList.keySet()) {
224  for (RoleRepresentation roleRep : repList.get(clientId)) {
225  if (clientRolesToOverwrite.get(clientId).contains(roleRep)) continue;
226  if (clientRolesToSkip.get(clientId).contains(roleRep)) continue;
227 
228  String modelId = clientRolesPI.getModelId(realm, clientId);
229  results.addResult(clientRolesPI.added(clientId, modelId, roleRep));
230  }
231  }
232  }
Map< String, Set< RoleRepresentation > > clientRolesToOverwrite
Definition: RolesPartialImport.java:52
String getModelId(RealmModel realm, String clientId)
Definition: ClientRolesPartialImport.java:165
Map< String, List< RoleRepresentation > > getRepList(PartialImportRepresentation partialImportRep)
Definition: ClientRolesPartialImport.java:52
PartialImportResult added(String clientId, String modelId, RoleRepresentation roleRep)
Definition: ClientRolesPartialImport.java:161
Map< String, Set< RoleRepresentation > > clientRolesToSkip
Definition: RolesPartialImport.java:53
final ClientRolesPartialImport clientRolesPI
Definition: RolesPartialImport.java:56

◆ deleteClientRoleOverwrites()

void org.keycloak.partialimport.RolesPartialImport.deleteClientRoleOverwrites ( RealmModel  realm)
inlineprivate
173  {
174  if (isEmpty(clientRolesToOverwrite)) return;
175 
176  for (String clientId : clientRolesToOverwrite.keySet()) {
177  for (RoleRepresentation roleRep : clientRolesToOverwrite.get(clientId)) {
178  clientRolesPI.deleteRole(realm, clientId, roleRep);
179  }
180  }
181  }
Map< String, Set< RoleRepresentation > > clientRolesToOverwrite
Definition: RolesPartialImport.java:52
void deleteRole(RealmModel realm, String clientId, RoleRepresentation roleRep)
Definition: ClientRolesPartialImport.java:99
boolean isEmpty(Set set)
Definition: RolesPartialImport.java:194
final ClientRolesPartialImport clientRolesPI
Definition: RolesPartialImport.java:56

◆ deleteRealmRoleOverwrites()

void org.keycloak.partialimport.RolesPartialImport.deleteRealmRoleOverwrites ( RealmModel  realm,
KeycloakSession  session 
)
inlineprivate
156  {
157  if (isEmpty(realmRolesToOverwrite)) return;
158 
159  for (RoleRepresentation roleRep : realmRolesToOverwrite) {
160  realmRolesPI.remove(realm, session, roleRep);
161  }
162  }
final RealmRolesPartialImport realmRolesPI
Definition: RolesPartialImport.java:55
void remove(RealmModel realm, KeycloakSession session, RoleRepresentation roleRep)
Definition: RealmRolesPartialImport.java:86
boolean isEmpty(Set set)
Definition: RolesPartialImport.java:194
Set< RoleRepresentation > realmRolesToOverwrite
Definition: RolesPartialImport.java:49

◆ doImport()

PartialImportResults org.keycloak.partialimport.RolesPartialImport.doImport ( PartialImportRepresentation  rep,
RealmModel  realm,
KeycloakSession  session 
) throws ErrorResponseException
inline
87  {
88  PartialImportResults results = new PartialImportResults();
89  if (!rep.hasRealmRoles() && !rep.hasClientRoles()) return results;
90 
91  // finalize preparation and add results for skips
92  removeRealmRoleSkips(results, rep, realm, session);
93  removeClientRoleSkips(results, rep, realm);
94  if (rep.hasRealmRoles()) setUniqueIds(rep.getRoles().getRealm());
95  if (rep.hasClientRoles()) setUniqueIds(rep.getRoles().getClient());
96 
97  try {
98  RepresentationToModel.importRoles(rep.getRoles(), realm);
99  } catch (Exception e) {
100  ServicesLogger.LOGGER.roleImportError(e);
101  throw new ErrorResponseException(ErrorResponse.error(e.getMessage(), Response.Status.INTERNAL_SERVER_ERROR));
102  }
103 
104  // add "add" results for new roles created
105  realmRoleAdds(results, rep, realm, session);
106  clientRoleAdds(results, rep, realm);
107 
108  // add "overwritten" results for roles overwritten
109  addResultsForOverwrittenRealmRoles(results, realm, session);
110  addResultsForOverwrittenClientRoles(results, realm);
111 
112  return results;
113  }
void removeClientRoleSkips(PartialImportResults results, PartialImportRepresentation rep, RealmModel realm)
Definition: RolesPartialImport.java:142
void addResultsForOverwrittenRealmRoles(PartialImportResults results, RealmModel realm, KeycloakSession session)
Definition: RolesPartialImport.java:164
void setUniqueIds(List< RoleRepresentation > realmRoles)
Definition: RolesPartialImport.java:115
void clientRoleAdds(PartialImportResults results, PartialImportRepresentation rep, RealmModel realm)
Definition: RolesPartialImport.java:217
void addResultsForOverwrittenClientRoles(PartialImportResults results, RealmModel realm)
Definition: RolesPartialImport.java:183
void realmRoleAdds(PartialImportResults results, PartialImportRepresentation rep, RealmModel realm, KeycloakSession session)
Definition: RolesPartialImport.java:202
void removeRealmRoleSkips(PartialImportResults results, PartialImportRepresentation rep, RealmModel realm, KeycloakSession session)
Definition: RolesPartialImport.java:129

◆ isEmpty() [1/2]

boolean org.keycloak.partialimport.RolesPartialImport.isEmpty ( Set  set)
inlineprivate
194  {
195  return (set == null) || (set.isEmpty());
196  }

◆ isEmpty() [2/2]

boolean org.keycloak.partialimport.RolesPartialImport.isEmpty ( Map  map)
inlineprivate
198  {
199  return (map == null) || (map.isEmpty());
200  }

◆ prepare()

void org.keycloak.partialimport.RolesPartialImport.prepare ( PartialImportRepresentation  rep,
RealmModel  realm,
KeycloakSession  session 
) throws ErrorResponseException
inline
59  {
60  prepareRealmRoles(rep, realm, session);
61  prepareClientRoles(rep, realm, session);
62  }
void prepareClientRoles(PartialImportRepresentation rep, RealmModel realm, KeycloakSession session)
Definition: RolesPartialImport.java:72
void prepareRealmRoles(PartialImportRepresentation rep, RealmModel realm, KeycloakSession session)
Definition: RolesPartialImport.java:64

◆ prepareClientRoles()

void org.keycloak.partialimport.RolesPartialImport.prepareClientRoles ( PartialImportRepresentation  rep,
RealmModel  realm,
KeycloakSession  session 
) throws ErrorResponseException
inlineprivate
72  {
73  if (!rep.hasClientRoles()) return;
74 
75  clientRolesPI.prepare(rep, realm, session);
78  }
Map< String, Set< RoleRepresentation > > clientRolesToOverwrite
Definition: RolesPartialImport.java:52
Map< String, Set< RoleRepresentation > > getToOverwrite()
Definition: ClientRolesPartialImport.java:44
Map< String, Set< RoleRepresentation > > getToSkip()
Definition: ClientRolesPartialImport.java:48
Map< String, Set< RoleRepresentation > > clientRolesToSkip
Definition: RolesPartialImport.java:53
final ClientRolesPartialImport clientRolesPI
Definition: RolesPartialImport.java:56
void prepare(PartialImportRepresentation partialImportRep, RealmModel realm, KeycloakSession session)
Definition: ClientRolesPartialImport.java:114

◆ prepareRealmRoles()

void org.keycloak.partialimport.RolesPartialImport.prepareRealmRoles ( PartialImportRepresentation  rep,
RealmModel  realm,
KeycloakSession  session 
) throws ErrorResponseException
inlineprivate
64  {
65  if (!rep.hasRealmRoles()) return;
66 
67  realmRolesPI.prepare(rep, realm, session);
70  }
final RealmRolesPartialImport realmRolesPI
Definition: RolesPartialImport.java:55
Set< RoleRepresentation > getToSkip()
Definition: RealmRolesPartialImport.java:40
Set< RoleRepresentation > getToOverwrite()
Definition: RealmRolesPartialImport.java:36
Set< RoleRepresentation > realmRolesToOverwrite
Definition: RolesPartialImport.java:49
void prepare(PartialImportRepresentation partialImportRep, RealmModel realm, KeycloakSession session)
Definition: AbstractPartialImport.java:51
Set< RoleRepresentation > realmRolesToSkip
Definition: RolesPartialImport.java:50

◆ realmRoleAdds()

void org.keycloak.partialimport.RolesPartialImport.realmRoleAdds ( PartialImportResults  results,
PartialImportRepresentation  rep,
RealmModel  realm,
KeycloakSession  session 
)
inlineprivate
205  {
206  if (!rep.hasRealmRoles()) return;
207 
208  for (RoleRepresentation roleRep : rep.getRoles().getRealm()) {
209  if (realmRolesToOverwrite.contains(roleRep)) continue;
210  if (realmRolesToSkip.contains(roleRep)) continue;
211 
212  String modelId = realmRolesPI.getModelId(realm, session, roleRep);
213  results.addResult(realmRolesPI.added(modelId, roleRep));
214  }
215  }
final RealmRolesPartialImport realmRolesPI
Definition: RolesPartialImport.java:55
PartialImportResult added(String modelId, T resourceRep)
Definition: AbstractPartialImport.java:81
String getModelId(RealmModel realm, KeycloakSession session, RoleRepresentation roleRep)
Definition: RealmRolesPartialImport.java:58
Set< RoleRepresentation > realmRolesToOverwrite
Definition: RolesPartialImport.java:49
Set< RoleRepresentation > realmRolesToSkip
Definition: RolesPartialImport.java:50

◆ removeClientRoleSkips()

void org.keycloak.partialimport.RolesPartialImport.removeClientRoleSkips ( PartialImportResults  results,
PartialImportRepresentation  rep,
RealmModel  realm 
)
inlineprivate
144  {
145  if (isEmpty(clientRolesToSkip)) return;
146 
147  for (String clientId : clientRolesToSkip.keySet()) {
148  for (RoleRepresentation roleRep : clientRolesToSkip.get(clientId)) {
149  rep.getRoles().getClient().get(clientId).remove(roleRep);
150  String modelId = clientRolesPI.getModelId(realm, clientId);
151  results.addResult(clientRolesPI.skipped(clientId, modelId, roleRep));
152  }
153  }
154  }
PartialImportResult skipped(String clientId, String modelId, RoleRepresentation roleRep)
Definition: ClientRolesPartialImport.java:157
String getModelId(RealmModel realm, String clientId)
Definition: ClientRolesPartialImport.java:165
boolean isEmpty(Set set)
Definition: RolesPartialImport.java:194
Map< String, Set< RoleRepresentation > > clientRolesToSkip
Definition: RolesPartialImport.java:53
final ClientRolesPartialImport clientRolesPI
Definition: RolesPartialImport.java:56

◆ removeOverwrites()

void org.keycloak.partialimport.RolesPartialImport.removeOverwrites ( RealmModel  realm,
KeycloakSession  session 
)
inline
81  {
83  deleteRealmRoleOverwrites(realm, session);
84  }
void deleteRealmRoleOverwrites(RealmModel realm, KeycloakSession session)
Definition: RolesPartialImport.java:156
void deleteClientRoleOverwrites(RealmModel realm)
Definition: RolesPartialImport.java:173

◆ removeRealmRoleSkips()

void org.keycloak.partialimport.RolesPartialImport.removeRealmRoleSkips ( PartialImportResults  results,
PartialImportRepresentation  rep,
RealmModel  realm,
KeycloakSession  session 
)
inlineprivate
132  {
133  if (isEmpty(realmRolesToSkip)) return;
134 
135  for (RoleRepresentation roleRep : realmRolesToSkip) {
136  rep.getRoles().getRealm().remove(roleRep);
137  String modelId = realmRolesPI.getModelId(realm, session, roleRep);
138  results.addResult(realmRolesPI.skipped(modelId, roleRep));
139  }
140  }
final RealmRolesPartialImport realmRolesPI
Definition: RolesPartialImport.java:55
PartialImportResult skipped(String modelId, T resourceRep)
Definition: AbstractPartialImport.java:77
boolean isEmpty(Set set)
Definition: RolesPartialImport.java:194
String getModelId(RealmModel realm, KeycloakSession session, RoleRepresentation roleRep)
Definition: RealmRolesPartialImport.java:58
Set< RoleRepresentation > realmRolesToSkip
Definition: RolesPartialImport.java:50

◆ setUniqueIds() [1/2]

void org.keycloak.partialimport.RolesPartialImport.setUniqueIds ( List< RoleRepresentation >  realmRoles)
inlineprivate
115  {
116  for (RoleRepresentation realmRole : realmRoles) {
117  realmRole.setId(KeycloakModelUtils.generateId());
118  }
119  }

◆ setUniqueIds() [2/2]

void org.keycloak.partialimport.RolesPartialImport.setUniqueIds ( Map< String, List< RoleRepresentation >>  clientRoles)
inlineprivate
121  {
122  for (String clientId : clientRoles.keySet()) {
123  for (RoleRepresentation clientRole : clientRoles.get(clientId)) {
124  clientRole.setId(KeycloakModelUtils.generateId());
125  }
126  }
127  }

メンバ詳解

◆ clientRolesPI

final ClientRolesPartialImport org.keycloak.partialimport.RolesPartialImport.clientRolesPI = new ClientRolesPartialImport()
private

◆ clientRolesToOverwrite

Map<String, Set<RoleRepresentation> > org.keycloak.partialimport.RolesPartialImport.clientRolesToOverwrite
private

◆ clientRolesToSkip

Map<String, Set<RoleRepresentation> > org.keycloak.partialimport.RolesPartialImport.clientRolesToSkip
private

◆ realmRolesPI

final RealmRolesPartialImport org.keycloak.partialimport.RolesPartialImport.realmRolesPI = new RealmRolesPartialImport()
private

◆ realmRolesToOverwrite

Set<RoleRepresentation> org.keycloak.partialimport.RolesPartialImport.realmRolesToOverwrite
private

◆ realmRolesToSkip

Set<RoleRepresentation> org.keycloak.partialimport.RolesPartialImport.realmRolesToSkip
private

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