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

公開メンバ関数

List< UserRepresentation > getRepList (PartialImportRepresentation partialImportRep)
 
String getName (UserRepresentation user)
 
String getModelId (RealmModel realm, KeycloakSession session, UserRepresentation user)
 
boolean exists (RealmModel realm, KeycloakSession session, UserRepresentation user)
 
String existsMessage (RealmModel realm, UserRepresentation user)
 
ResourceType getResourceType ()
 
void remove (RealmModel realm, KeycloakSession session, UserRepresentation user)
 
void create (RealmModel realm, KeycloakSession session, UserRepresentation user)
 
abstract String getName (T resourceRep)
 
abstract String getModelId (RealmModel realm, KeycloakSession session, T resourceRep)
 
abstract boolean exists (RealmModel realm, KeycloakSession session, T resourceRep)
 
abstract String existsMessage (RealmModel realm, T resourceRep)
 
abstract void remove (RealmModel realm, KeycloakSession session, T resourceRep)
 
abstract void create (RealmModel realm, KeycloakSession session, T resourceRep)
 
void prepare (PartialImportRepresentation partialImportRep, RealmModel realm, KeycloakSession session) throws ErrorResponseException
 
void removeOverwrites (RealmModel realm, KeycloakSession session)
 
PartialImportResults doImport (PartialImportRepresentation partialImportRep, RealmModel realm, KeycloakSession session) throws ErrorResponseException
 

限定公開メンバ関数

ErrorResponseException existsError (String message)
 
PartialImportResult overwritten (String modelId, T resourceRep)
 
PartialImportResult skipped (String modelId, T resourceRep)
 
PartialImportResult added (String modelId, T resourceRep)
 

限定公開変数類

final Set< T > toOverwrite
 
final Set< T > toSkip
 

非公開メンバ関数

boolean userNameExists (RealmModel realm, KeycloakSession session, UserRepresentation user)
 
boolean userEmailExists (RealmModel realm, KeycloakSession session, UserRepresentation user)
 

非公開変数類

final Map< String, String > createdIds = new HashMap<>()
 

詳解

PartialImport handler for users.

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

関数詳解

◆ added()

PartialImportResult org.keycloak.partialimport.AbstractPartialImport< T >.added ( String  modelId,
resourceRep 
)
inlineprotectedinherited
81  {
82  return PartialImportResult.added(getResourceType(), getName(resourceRep), modelId, resourceRep);
83  }

◆ create() [1/2]

abstract void org.keycloak.partialimport.AbstractPartialImport< T >.create ( RealmModel  realm,
KeycloakSession  session,
resourceRep 
)
abstractinherited

◆ create() [2/2]

void org.keycloak.partialimport.UsersPartialImport.create ( RealmModel  realm,
KeycloakSession  session,
UserRepresentation  user 
)
inline
112  {
113  user.setId(KeycloakModelUtils.generateId());
114  UserModel userModel = RepresentationToModel.createUser(session, realm, user);
115  if (userModel == null) throw new RuntimeException("Unable to create user " + getName(user));
116  createdIds.put(getName(user), userModel.getId());
117  }
String getName(UserRepresentation user)
Definition: UsersPartialImport.java:50
final Map< String, String > createdIds
Definition: UsersPartialImport.java:42

◆ doImport()

PartialImportResults org.keycloak.partialimport.AbstractPartialImport< T >.doImport ( PartialImportRepresentation  partialImportRep,
RealmModel  realm,
KeycloakSession  session 
) throws ErrorResponseException
inlineinherited
93  {
94  PartialImportResults results = new PartialImportResults();
95  List<T> repList = getRepList(partialImportRep);
96  if ((repList == null) || repList.isEmpty()) return results;
97 
98  for (T resourceRep : toOverwrite) {
99  try {
100  create(realm, session, resourceRep);
101  } catch (Exception e) {
102  ServicesLogger.LOGGER.overwriteError(e, getName(resourceRep));
103  throw new ErrorResponseException(ErrorResponse.error(e.getMessage(), Response.Status.INTERNAL_SERVER_ERROR));
104  }
105 
106  String modelId = getModelId(realm, session, resourceRep);
107  results.addResult(overwritten(modelId, resourceRep));
108  }
109 
110  for (T resourceRep : toSkip) {
111  String modelId = getModelId(realm, session, resourceRep);
112  results.addResult(skipped(modelId, resourceRep));
113  }
114 
115  for (T resourceRep : repList) {
116  if (toOverwrite.contains(resourceRep)) continue;
117  if (toSkip.contains(resourceRep)) continue;
118 
119  try {
120  create(realm, session, resourceRep);
121  String modelId = getModelId(realm, session, resourceRep);
122  results.addResult(added(modelId, resourceRep));
123  } catch (Exception e) {
124  ServicesLogger.LOGGER.creationError(e, getName(resourceRep));
125  throw new ErrorResponseException(ErrorResponse.error(e.getMessage(), Response.Status.INTERNAL_SERVER_ERROR));
126  }
127  }
128 
129  return results;
130  }
final Set< T > toSkip
Definition: AbstractPartialImport.java:39
PartialImportResult skipped(String modelId, T resourceRep)
Definition: AbstractPartialImport.java:77
abstract String getModelId(RealmModel realm, KeycloakSession session, T resourceRep)
PartialImportResult overwritten(String modelId, T resourceRep)
Definition: AbstractPartialImport.java:73
abstract void create(RealmModel realm, KeycloakSession session, T resourceRep)
PartialImportResult added(String modelId, T resourceRep)
Definition: AbstractPartialImport.java:81
abstract List< T > getRepList(PartialImportRepresentation partialImportRep)
final Set< T > toOverwrite
Definition: AbstractPartialImport.java:38

◆ exists() [1/2]

abstract boolean org.keycloak.partialimport.AbstractPartialImport< T >.exists ( RealmModel  realm,
KeycloakSession  session,
resourceRep 
)
abstractinherited

◆ exists() [2/2]

boolean org.keycloak.partialimport.UsersPartialImport.exists ( RealmModel  realm,
KeycloakSession  session,
UserRepresentation  user 
)
inline
72  {
73  return userNameExists(realm, session, user) || userEmailExists(realm, session, user);
74  }
boolean userNameExists(RealmModel realm, KeycloakSession session, UserRepresentation user)
Definition: UsersPartialImport.java:76
boolean userEmailExists(RealmModel realm, KeycloakSession session, UserRepresentation user)
Definition: UsersPartialImport.java:80

◆ existsError()

ErrorResponseException org.keycloak.partialimport.AbstractPartialImport< T >.existsError ( String  message)
inlineprotectedinherited
68  {
69  Response error = ErrorResponse.exists(message);
70  return new ErrorResponseException(error);
71  }

◆ existsMessage() [1/2]

abstract String org.keycloak.partialimport.AbstractPartialImport< T >.existsMessage ( RealmModel  realm,
resourceRep 
)
abstractinherited

◆ existsMessage() [2/2]

String org.keycloak.partialimport.UsersPartialImport.existsMessage ( RealmModel  realm,
UserRepresentation  user 
)
inline
86  {
87  if (user.getEmail() == null || !realm.isDuplicateEmailsAllowed()) {
88  return "User with user name " + getName(user) + " already exists.";
89  }
90 
91  return "User with user name " + getName(user) + " or with email " + user.getEmail() + " already exists.";
92  }
String getName(UserRepresentation user)
Definition: UsersPartialImport.java:50

◆ getModelId() [1/2]

abstract String org.keycloak.partialimport.AbstractPartialImport< T >.getModelId ( RealmModel  realm,
KeycloakSession  session,
resourceRep 
)
abstractinherited

◆ getModelId() [2/2]

String org.keycloak.partialimport.UsersPartialImport.getModelId ( RealmModel  realm,
KeycloakSession  session,
UserRepresentation  user 
)
inline
57  {
58  if (createdIds.containsKey(getName(user))) return createdIds.get(getName(user));
59 
60  String userName = user.getUsername();
61  if (userName != null) {
62  return session.users().getUserByUsername(userName, realm).getId();
63  } else if (!realm.isDuplicateEmailsAllowed()) {
64  String email = user.getEmail();
65  return session.users().getUserByEmail(email, realm).getId();
66  }
67 
68  return null;
69  }
String getName(UserRepresentation user)
Definition: UsersPartialImport.java:50
final Map< String, String > createdIds
Definition: UsersPartialImport.java:42

◆ getName() [1/2]

abstract String org.keycloak.partialimport.AbstractPartialImport< T >.getName ( resourceRep)
abstractinherited

◆ getName() [2/2]

String org.keycloak.partialimport.UsersPartialImport.getName ( UserRepresentation  user)
inline
50  {
51  if (user.getUsername() != null) return user.getUsername();
52 
53  return user.getEmail();
54  }

◆ getRepList()

List<UserRepresentation> org.keycloak.partialimport.UsersPartialImport.getRepList ( PartialImportRepresentation  partialImportRep)
inline
45  {
46  return partialImportRep.getUsers();
47  }

◆ getResourceType()

ResourceType org.keycloak.partialimport.UsersPartialImport.getResourceType ( )
inline
95  {
96  return ResourceType.USER;
97  }

◆ overwritten()

PartialImportResult org.keycloak.partialimport.AbstractPartialImport< T >.overwritten ( String  modelId,
resourceRep 
)
inlineprotectedinherited
73  {
74  return PartialImportResult.overwritten(getResourceType(), getName(resourceRep), modelId, resourceRep);
75  }

◆ prepare()

void org.keycloak.partialimport.AbstractPartialImport< T >.prepare ( PartialImportRepresentation  partialImportRep,
RealmModel  realm,
KeycloakSession  session 
) throws ErrorResponseException
inlineinherited
53  {
54  List<T> repList = getRepList(partialImportRep);
55  if ((repList == null) || repList.isEmpty()) return;
56 
57  for (T resourceRep : getRepList(partialImportRep)) {
58  if (exists(realm, session, resourceRep)) {
59  switch (partialImportRep.getPolicy()) {
60  case SKIP: toSkip.add(resourceRep); break;
61  case OVERWRITE: toOverwrite.add(resourceRep); break;
62  default: throw existsError(existsMessage(realm, resourceRep));
63  }
64  }
65  }
66  }
final Set< T > toSkip
Definition: AbstractPartialImport.java:39
abstract String existsMessage(RealmModel realm, T resourceRep)
ErrorResponseException existsError(String message)
Definition: AbstractPartialImport.java:68
abstract List< T > getRepList(PartialImportRepresentation partialImportRep)
final Set< T > toOverwrite
Definition: AbstractPartialImport.java:38
abstract boolean exists(RealmModel realm, KeycloakSession session, T resourceRep)

◆ remove() [1/2]

abstract void org.keycloak.partialimport.AbstractPartialImport< T >.remove ( RealmModel  realm,
KeycloakSession  session,
resourceRep 
)
abstractinherited

◆ remove() [2/2]

void org.keycloak.partialimport.UsersPartialImport.remove ( RealmModel  realm,
KeycloakSession  session,
UserRepresentation  user 
)
inline
100  {
101  UserModel userModel = session.users().getUserByUsername(user.getUsername(), realm);
102  if (userModel == null && !realm.isDuplicateEmailsAllowed()) {
103  userModel = session.users().getUserByEmail(user.getEmail(), realm);
104  }
105  if (userModel != null) {
106  boolean success = new UserManager(session).removeUser(realm, userModel);
107  if (!success) throw new RuntimeException("Unable to overwrite user " + getName(user));
108  }
109  }
String getName(UserRepresentation user)
Definition: UsersPartialImport.java:50

◆ removeOverwrites()

void org.keycloak.partialimport.AbstractPartialImport< T >.removeOverwrites ( RealmModel  realm,
KeycloakSession  session 
)
inlineinherited
86  {
87  for (T resourceRep : toOverwrite) {
88  remove(realm, session, resourceRep);
89  }
90  }
final Set< T > toOverwrite
Definition: AbstractPartialImport.java:38

◆ skipped()

PartialImportResult org.keycloak.partialimport.AbstractPartialImport< T >.skipped ( String  modelId,
resourceRep 
)
inlineprotectedinherited
77  {
78  return PartialImportResult.skipped(getResourceType(), getName(resourceRep), modelId, resourceRep);
79  }

◆ userEmailExists()

boolean org.keycloak.partialimport.UsersPartialImport.userEmailExists ( RealmModel  realm,
KeycloakSession  session,
UserRepresentation  user 
)
inlineprivate
80  {
81  return (user.getEmail() != null) && !realm.isDuplicateEmailsAllowed() &&
82  (session.users().getUserByEmail(user.getEmail(), realm) != null);
83  }

◆ userNameExists()

boolean org.keycloak.partialimport.UsersPartialImport.userNameExists ( RealmModel  realm,
KeycloakSession  session,
UserRepresentation  user 
)
inlineprivate
76  {
77  return session.users().getUserByUsername(user.getUsername(), realm) != null;
78  }

メンバ詳解

◆ createdIds

final Map<String, String> org.keycloak.partialimport.UsersPartialImport.createdIds = new HashMap<>()
private

◆ toOverwrite

final Set<T> org.keycloak.partialimport.AbstractPartialImport< T >.toOverwrite
protectedinherited

◆ toSkip

final Set<T> org.keycloak.partialimport.AbstractPartialImport< T >.toSkip
protectedinherited

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