keycloak
公開メンバ関数 | 非公開メンバ関数 | 非公開変数類 | 全メンバ一覧
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< RoleRepresentationrealmRolesToOverwrite
 
Set< RoleRepresentationrealmRolesToSkip
 
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  }
String getModelId(RealmModel realm, String clientId)
Definition: ClientRolesPartialImport.java:165
PartialImportResult overwritten(String clientId, String modelId, RoleRepresentation roleRep)
Definition: ClientRolesPartialImport.java:153
boolean isEmpty(Set set)
Definition: RolesPartialImport.java:194
final ClientRolesPartialImport clientRolesPI
Definition: RolesPartialImport.java:56
Map< String, Set< RoleRepresentation > > clientRolesToOverwrite
Definition: RolesPartialImport.java:52

◆ 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  }
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
final RealmRolesPartialImport realmRolesPI
Definition: RolesPartialImport.java:55
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, List< RoleRepresentation > > getRepList(PartialImportRepresentation partialImportRep)
Definition: ClientRolesPartialImport.java:52
String getModelId(RealmModel realm, String clientId)
Definition: ClientRolesPartialImport.java:165
Map< String, Set< RoleRepresentation > > clientRolesToSkip
Definition: RolesPartialImport.java:53
final ClientRolesPartialImport clientRolesPI
Definition: RolesPartialImport.java:56
Map< String, Set< RoleRepresentation > > clientRolesToOverwrite
Definition: RolesPartialImport.java:52
PartialImportResult added(String clientId, String modelId, RoleRepresentation roleRep)
Definition: ClientRolesPartialImport.java:161

◆ 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  }
boolean isEmpty(Set set)
Definition: RolesPartialImport.java:194
final ClientRolesPartialImport clientRolesPI
Definition: RolesPartialImport.java:56
Map< String, Set< RoleRepresentation > > clientRolesToOverwrite
Definition: RolesPartialImport.java:52
void deleteRole(RealmModel realm, String clientId, RoleRepresentation roleRep)
Definition: ClientRolesPartialImport.java:99

◆ 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  }
boolean isEmpty(Set set)
Definition: RolesPartialImport.java:194
void remove(RealmModel realm, KeycloakSession session, RoleRepresentation roleRep)
Definition: RealmRolesPartialImport.java:86
final RealmRolesPartialImport realmRolesPI
Definition: RolesPartialImport.java:55
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 removeRealmRoleSkips(PartialImportResults results, PartialImportRepresentation rep, RealmModel realm, KeycloakSession session)
Definition: RolesPartialImport.java:129
void setUniqueIds(List< RoleRepresentation > realmRoles)
Definition: RolesPartialImport.java:115
void addResultsForOverwrittenClientRoles(PartialImportResults results, RealmModel realm)
Definition: RolesPartialImport.java:183
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 realmRoleAdds(PartialImportResults results, PartialImportRepresentation rep, RealmModel realm, KeycloakSession session)
Definition: RolesPartialImport.java:202
void clientRoleAdds(PartialImportResults results, PartialImportRepresentation rep, RealmModel realm)
Definition: RolesPartialImport.java:217

◆ 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 prepareRealmRoles(PartialImportRepresentation rep, RealmModel realm, KeycloakSession session)
Definition: RolesPartialImport.java:64
void prepareClientRoles(PartialImportRepresentation rep, RealmModel realm, KeycloakSession session)
Definition: RolesPartialImport.java:72

◆ 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 > > getToOverwrite()
Definition: ClientRolesPartialImport.java:44
void prepare(PartialImportRepresentation partialImportRep, RealmModel realm, KeycloakSession session)
Definition: ClientRolesPartialImport.java:114
Map< String, Set< RoleRepresentation > > clientRolesToSkip
Definition: RolesPartialImport.java:53
final ClientRolesPartialImport clientRolesPI
Definition: RolesPartialImport.java:56
Map< String, Set< RoleRepresentation > > clientRolesToOverwrite
Definition: RolesPartialImport.java:52
Map< String, Set< RoleRepresentation > > getToSkip()
Definition: ClientRolesPartialImport.java:48

◆ 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  }
Set< RoleRepresentation > getToOverwrite()
Definition: RealmRolesPartialImport.java:36
void prepare(PartialImportRepresentation partialImportRep, RealmModel realm, KeycloakSession session)
Definition: AbstractPartialImport.java:51
Set< RoleRepresentation > realmRolesToSkip
Definition: RolesPartialImport.java:50
final RealmRolesPartialImport realmRolesPI
Definition: RolesPartialImport.java:55
Set< RoleRepresentation > getToSkip()
Definition: RealmRolesPartialImport.java:40
Set< RoleRepresentation > realmRolesToOverwrite
Definition: RolesPartialImport.java:49

◆ 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  }
PartialImportResult added(String modelId, T resourceRep)
Definition: AbstractPartialImport.java:81
Set< RoleRepresentation > realmRolesToSkip
Definition: RolesPartialImport.java:50
String getModelId(RealmModel realm, KeycloakSession session, RoleRepresentation roleRep)
Definition: RealmRolesPartialImport.java:58
final RealmRolesPartialImport realmRolesPI
Definition: RolesPartialImport.java:55
Set< RoleRepresentation > realmRolesToOverwrite
Definition: RolesPartialImport.java:49

◆ 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  }
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
PartialImportResult skipped(String clientId, String modelId, RoleRepresentation roleRep)
Definition: ClientRolesPartialImport.java:157

◆ removeOverwrites()

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

◆ 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  }
PartialImportResult skipped(String modelId, T resourceRep)
Definition: AbstractPartialImport.java:77
boolean isEmpty(Set set)
Definition: RolesPartialImport.java:194
Set< RoleRepresentation > realmRolesToSkip
Definition: RolesPartialImport.java:50
String getModelId(RealmModel realm, KeycloakSession session, RoleRepresentation roleRep)
Definition: RealmRolesPartialImport.java:58
final RealmRolesPartialImport realmRolesPI
Definition: RolesPartialImport.java:55

◆ 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

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