keycloak-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  }
PartialImportResult overwritten(String clientId, String modelId, RoleRepresentation roleRep)
Definition: ClientRolesPartialImport.java:153
boolean isEmpty(Set set)
Definition: RolesPartialImport.java:194
Map< String, Set< RoleRepresentation > > clientRolesToOverwrite
Definition: RolesPartialImport.java:52
String getModelId(RealmModel realm, String clientId)
Definition: ClientRolesPartialImport.java:165
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  }
Set< RoleRepresentation > realmRolesToOverwrite
Definition: RolesPartialImport.java:49
boolean isEmpty(Set set)
Definition: RolesPartialImport.java:194
PartialImportResult overwritten(String modelId, T resourceRep)
Definition: AbstractPartialImport.java:73
String getModelId(RealmModel realm, KeycloakSession session, RoleRepresentation roleRep)
Definition: RealmRolesPartialImport.java:58
final RealmRolesPartialImport realmRolesPI
Definition: RolesPartialImport.java:55

◆ 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  }
PartialImportResult added(String clientId, String modelId, RoleRepresentation roleRep)
Definition: ClientRolesPartialImport.java:161
Map< String, Set< RoleRepresentation > > clientRolesToSkip
Definition: RolesPartialImport.java:53
Map< String, Set< RoleRepresentation > > clientRolesToOverwrite
Definition: RolesPartialImport.java:52
Map< String, List< RoleRepresentation > > getRepList(PartialImportRepresentation partialImportRep)
Definition: ClientRolesPartialImport.java:52
String getModelId(RealmModel realm, String clientId)
Definition: ClientRolesPartialImport.java:165
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  }
boolean isEmpty(Set set)
Definition: RolesPartialImport.java:194
Map< String, Set< RoleRepresentation > > clientRolesToOverwrite
Definition: RolesPartialImport.java:52
void deleteRole(RealmModel realm, String clientId, RoleRepresentation roleRep)
Definition: ClientRolesPartialImport.java:99
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  }
Set< RoleRepresentation > realmRolesToOverwrite
Definition: RolesPartialImport.java:49
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

◆ 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 realmRoleAdds(PartialImportResults results, PartialImportRepresentation rep, RealmModel realm, KeycloakSession session)
Definition: RolesPartialImport.java:202
void addResultsForOverwrittenClientRoles(PartialImportResults results, RealmModel realm)
Definition: RolesPartialImport.java:183
void removeClientRoleSkips(PartialImportResults results, PartialImportRepresentation rep, RealmModel realm)
Definition: RolesPartialImport.java:142
void removeRealmRoleSkips(PartialImportResults results, PartialImportRepresentation rep, RealmModel realm, KeycloakSession session)
Definition: RolesPartialImport.java:129
void clientRoleAdds(PartialImportResults results, PartialImportRepresentation rep, RealmModel realm)
Definition: RolesPartialImport.java:217
void setUniqueIds(List< RoleRepresentation > realmRoles)
Definition: RolesPartialImport.java:115
void addResultsForOverwrittenRealmRoles(PartialImportResults results, RealmModel realm, KeycloakSession session)
Definition: RolesPartialImport.java:164

◆ 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 > > clientRolesToSkip
Definition: RolesPartialImport.java:53
Map< String, Set< RoleRepresentation > > clientRolesToOverwrite
Definition: RolesPartialImport.java:52
Map< String, Set< RoleRepresentation > > getToOverwrite()
Definition: ClientRolesPartialImport.java:44
void prepare(PartialImportRepresentation partialImportRep, RealmModel realm, KeycloakSession session)
Definition: ClientRolesPartialImport.java:114
final ClientRolesPartialImport clientRolesPI
Definition: RolesPartialImport.java:56
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 > realmRolesToSkip
Definition: RolesPartialImport.java:50
Set< RoleRepresentation > realmRolesToOverwrite
Definition: RolesPartialImport.java:49
void prepare(PartialImportRepresentation partialImportRep, RealmModel realm, KeycloakSession session)
Definition: AbstractPartialImport.java:51
Set< RoleRepresentation > getToOverwrite()
Definition: RealmRolesPartialImport.java:36
Set< RoleRepresentation > getToSkip()
Definition: RealmRolesPartialImport.java:40
final RealmRolesPartialImport realmRolesPI
Definition: RolesPartialImport.java:55

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

◆ 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  }
boolean isEmpty(Set set)
Definition: RolesPartialImport.java:194
PartialImportResult skipped(String clientId, String modelId, RoleRepresentation roleRep)
Definition: ClientRolesPartialImport.java:157
Map< String, Set< RoleRepresentation > > clientRolesToSkip
Definition: RolesPartialImport.java:53
String getModelId(RealmModel realm, String clientId)
Definition: ClientRolesPartialImport.java:165
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 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  }
Set< RoleRepresentation > realmRolesToSkip
Definition: RolesPartialImport.java:50
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
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

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