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

公開メンバ関数

List< ClientRepresentation > getRepList (PartialImportRepresentation partialImportRep)
 
String getName (ClientRepresentation clientRep)
 
String getModelId (RealmModel realm, KeycloakSession session, ClientRepresentation clientRep)
 
boolean exists (RealmModel realm, KeycloakSession session, ClientRepresentation clientRep)
 
String existsMessage (RealmModel realm, ClientRepresentation clientRep)
 
ResourceType getResourceType ()
 
void remove (RealmModel realm, KeycloakSession session, ClientRepresentation clientRep)
 
void create (RealmModel realm, KeycloakSession session, ClientRepresentation clientRep)
 
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
 

静的公開メンバ関数

static boolean isInternalClient (String clientId)
 

限定公開メンバ関数

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
 

静的非公開変数類

static Set< String > INTERNAL_CLIENTS = Collections.unmodifiableSet(new HashSet(Constants.defaultClients))
 
static Logger logger = Logger.getLogger(ClientsPartialImport.class)
 

詳解

PartialImport handler for Clients.

著者
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.ClientsPartialImport.create ( RealmModel  realm,
KeycloakSession  session,
ClientRepresentation  clientRep 
)
inline
100  {
101  clientRep.setId(KeycloakModelUtils.generateId());
102 
103  List<ProtocolMapperRepresentation> mappers = clientRep.getProtocolMappers();
104  if (mappers != null) {
105  for (ProtocolMapperRepresentation mapper : mappers) {
106  mapper.setId(KeycloakModelUtils.generateId());
107  }
108  }
109 
110  RepresentationToModel.createClient(session, realm, clientRep, true);
111  }

◆ 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.ClientsPartialImport.exists ( RealmModel  realm,
KeycloakSession  session,
ClientRepresentation  clientRep 
)
inline
79  {
80  return realm.getClientByClientId(getName(clientRep)) != null;
81  }
String getName(ClientRepresentation clientRep)
Definition: ClientsPartialImport.java:69

◆ 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.ClientsPartialImport.existsMessage ( RealmModel  realm,
ClientRepresentation  clientRep 
)
inline
84  {
85  return "Client id '" + getName(clientRep) + "' already exists";
86  }
String getName(ClientRepresentation clientRep)
Definition: ClientsPartialImport.java:69

◆ getModelId() [1/2]

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

◆ getModelId() [2/2]

String org.keycloak.partialimport.ClientsPartialImport.getModelId ( RealmModel  realm,
KeycloakSession  session,
ClientRepresentation  clientRep 
)
inline
74  {
75  return realm.getClientByClientId(getName(clientRep)).getId();
76  }
String getName(ClientRepresentation clientRep)
Definition: ClientsPartialImport.java:69

◆ getName() [1/2]

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

◆ getName() [2/2]

String org.keycloak.partialimport.ClientsPartialImport.getName ( ClientRepresentation  clientRep)
inline
69  {
70  return clientRep.getClientId();
71  }

◆ getRepList()

List<ClientRepresentation> org.keycloak.partialimport.ClientsPartialImport.getRepList ( PartialImportRepresentation  partialImportRep)
inline
49  {
50  List<ClientRepresentation> clients = partialImportRep.getClients();
51  if (clients == null || clients.size() == 0) {
52  return clients;
53  }
54 
55  // filter out internal clients
56  List<ClientRepresentation> ret = new ArrayList();
57 
58  for (ClientRepresentation c: clients) {
59  if (!isInternalClient(c.getClientId())) {
60  ret.add(c);
61  } else {
62  logger.debugv("Internal client {0} will not be processed", c.getClientId());
63  }
64  }
65  return ret;
66  }
static Logger logger
Definition: ClientsPartialImport.java:46
static boolean isInternalClient(String clientId)
Definition: ClientsPartialImport.java:113

◆ getResourceType()

ResourceType org.keycloak.partialimport.ClientsPartialImport.getResourceType ( )
inline
89  {
90  return ResourceType.CLIENT;
91  }

◆ isInternalClient()

static boolean org.keycloak.partialimport.ClientsPartialImport.isInternalClient ( String  clientId)
inlinestatic
113  {
114  if (clientId != null && clientId.endsWith("-realm")) {
115  return true;
116  }
117  return INTERNAL_CLIENTS.contains(clientId);
118  }
static Set< String > INTERNAL_CLIENTS
Definition: ClientsPartialImport.java:44

◆ 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.ClientsPartialImport.remove ( RealmModel  realm,
KeycloakSession  session,
ClientRepresentation  clientRep 
)
inline
94  {
95  ClientModel clientModel = realm.getClientByClientId(getName(clientRep));
96  realm.removeClient(clientModel.getId());
97  }
String getName(ClientRepresentation clientRep)
Definition: ClientsPartialImport.java:69

◆ 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  }

メンバ詳解

◆ INTERNAL_CLIENTS

Set<String> org.keycloak.partialimport.ClientsPartialImport.INTERNAL_CLIENTS = Collections.unmodifiableSet(new HashSet(Constants.defaultClients))
staticprivate

◆ logger

Logger org.keycloak.partialimport.ClientsPartialImport.logger = Logger.getLogger(ClientsPartialImport.class)
staticprivate

◆ toOverwrite

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

◆ toSkip

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

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