keycloak
静的公開メンバ関数 | 静的関数 | 静的非公開メンバ関数 | 静的非公開変数類 | 全メンバ一覧
org.keycloak.subsystem.server.extension.JsonConfigConverter クラス
org.keycloak.subsystem.server.extension.JsonConfigConverter 連携図
Collaboration graph

静的公開メンバ関数

static List< ModelNode > convertJsonConfig (String json, PathAddress subsysAddress) throws IOException
 

静的関数

 [static initializer]
 

静的非公開メンバ関数

static ModelNode masterRealmName (JsonNode root, PathAddress addr)
 
static ModelNode scheduledTaskInterval (JsonNode root, PathAddress addr)
 
static ModelNode providers (JsonNode root, PathAddress addr)
 
static ModelNode theme (JsonNode root, PathAddress addr)
 
static ModelNode themeModules (JsonNode modulesNode)
 
static Collection< ModelNode > spis (JsonNode root, PathAddress addr)
 
static List< ModelNode > spi (JsonNode root, PathAddress spiAddr, String spiName)
 
static ModelNode spiProvider (JsonNode providerNode, PathAddress providerAddr)
 
static String makeArrayText (JsonNode arrayNode)
 
static JsonNode getNode (JsonNode root, String... path)
 

静的非公開変数類

static final List< String > NON_SPI_LIST = new ArrayList<>()
 

詳解

Converts json representation of Keycloak config to DMR operations.

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

関数詳解

◆ [static initializer]()

org.keycloak.subsystem.server.extension.JsonConfigConverter.[static initializer] ( )
inlinestaticpackage

◆ convertJsonConfig()

static List<ModelNode> org.keycloak.subsystem.server.extension.JsonConfigConverter.convertJsonConfig ( String  json,
PathAddress  subsysAddress 
) throws IOException
inlinestatic

Convert keycloak-server.json to DMR operations that write to standalone.xml or domain.xml.

引数
jsonThe json representation of the config.
subsysAddressThe management model address of the keycloak-server subsystem.
戻り値
A list of DMR operations.
例外
IOExceptionIf the json can not be parsed.
68  {
69  List<ModelNode> list = new ArrayList<>();
70 
71  JsonNode root = new ObjectMapper().readTree(json);
72 
73  list.add(masterRealmName(root, subsysAddress));
74  list.add(scheduledTaskInterval(root, subsysAddress));
75  list.add(providers(root, subsysAddress));
76  list.add(theme(root, subsysAddress.append(ThemeResourceDefinition.TAG_NAME,
77  ThemeResourceDefinition.RESOURCE_NAME)));
78  list.addAll(spis(root, subsysAddress));
79 
80  return list;
81  }
static Collection< ModelNode > spis(JsonNode root, PathAddress addr)
Definition: JsonConfigConverter.java:167
static ModelNode scheduledTaskInterval(JsonNode root, PathAddress addr)
Definition: JsonConfigConverter.java:94
static ModelNode theme(JsonNode root, PathAddress addr)
Definition: JsonConfigConverter.java:121
static ModelNode masterRealmName(JsonNode root, PathAddress addr)
Definition: JsonConfigConverter.java:83
static ModelNode providers(JsonNode root, PathAddress addr)
Definition: JsonConfigConverter.java:105

◆ getNode()

static JsonNode org.keycloak.subsystem.server.extension.JsonConfigConverter.getNode ( JsonNode  root,
String...  path 
)
inlinestaticprivate
248  {
249  if (root == null) {
250  return null;
251  }
252  JsonNode n = root;
253  for (String p : path) {
254  n = n.get(p);
255  if (n == null) {
256  return null;
257  }
258  }
259  return n;
260  }

◆ makeArrayText()

static String org.keycloak.subsystem.server.extension.JsonConfigConverter.makeArrayText ( JsonNode  arrayNode)
inlinestaticprivate
232  {
233  StringBuilder builder = new StringBuilder("[");
234 
235  Iterator<JsonNode> nodes = arrayNode.iterator();
236  while (nodes.hasNext()) {
237  JsonNode node = nodes.next();
238  builder.append("\"");
239  builder.append(node.asText());
240  builder.append("\"");
241  if (nodes.hasNext()) builder.append(",");
242  }
243  builder.append("]");
244 
245  return builder.toString();
246  }

◆ masterRealmName()

static ModelNode org.keycloak.subsystem.server.extension.JsonConfigConverter.masterRealmName ( JsonNode  root,
PathAddress  addr 
)
inlinestaticprivate
83  {
84  JsonNode targetNode = getNode(root, "admin", "realm");
85  String value = MASTER_REALM_NAME.getDefaultValue().asString();
86  if (targetNode != null) value = targetNode.asText(value);
87 
88  ModelNode op = Util.createOperation(WRITE_ATTRIBUTE_OPERATION, addr);
89  op.get("name").set(MASTER_REALM_NAME.getName());
90  op.get("value").set(value);
91  return op;
92  }
static JsonNode getNode(JsonNode root, String... path)
Definition: JsonConfigConverter.java:248

◆ providers()

static ModelNode org.keycloak.subsystem.server.extension.JsonConfigConverter.providers ( JsonNode  root,
PathAddress  addr 
)
inlinestaticprivate
105  {
106  JsonNode targetNode = getNode(root, "providers");
107  ModelNode value = PROVIDERS.getDefaultValue();
108  if (targetNode != null && targetNode.isArray()) {
109  value = new ModelNode();
110  for (JsonNode node : targetNode) {
111  value.add(node.asText());
112  }
113  }
114 
115  ModelNode op = Util.createOperation(WRITE_ATTRIBUTE_OPERATION, addr);
116  op.get("name").set(PROVIDERS.getName());
117  op.get("value").set(value);
118  return op;
119  }
static JsonNode getNode(JsonNode root, String... path)
Definition: JsonConfigConverter.java:248

◆ scheduledTaskInterval()

static ModelNode org.keycloak.subsystem.server.extension.JsonConfigConverter.scheduledTaskInterval ( JsonNode  root,
PathAddress  addr 
)
inlinestaticprivate
94  {
95  JsonNode targetNode = getNode(root, "scheduled", "interval");
96  Long value = SCHEDULED_TASK_INTERVAL.getDefaultValue().asLong();
97  if (targetNode != null) value = targetNode.asLong(value);
98 
99  ModelNode op = Util.createOperation(WRITE_ATTRIBUTE_OPERATION, addr);
100  op.get("name").set(SCHEDULED_TASK_INTERVAL.getName());
101  op.get("value").set(value);
102  return op;
103  }
static JsonNode getNode(JsonNode root, String... path)
Definition: JsonConfigConverter.java:248

◆ spi()

static List<ModelNode> org.keycloak.subsystem.server.extension.JsonConfigConverter.spi ( JsonNode  root,
PathAddress  spiAddr,
String  spiName 
)
inlinestaticprivate
182  {
183  List<ModelNode> spiAndProviders = new ArrayList<>();
184  ModelNode op = Util.createAddOperation(spiAddr);
185  spiAndProviders.add(op);
186 
187  Iterator<String> providerIterator = root.get(spiName).fieldNames();
188  while (providerIterator.hasNext()) {
189  String providerName = providerIterator.next();
190  if ("provider".equals(providerName)) {
191  op.get(SpiResourceDefinition.DEFAULT_PROVIDER.getName()).set(getNode(root, spiName, "provider").asText());
192  } else {
193  PathAddress providerAddr = spiAddr.append("provider", providerName);
194  spiAndProviders.add(spiProvider(getNode(root, spiName, providerName), providerAddr));
195  }
196  }
197 
198  return spiAndProviders;
199  }
static JsonNode getNode(JsonNode root, String... path)
Definition: JsonConfigConverter.java:248
static ModelNode spiProvider(JsonNode providerNode, PathAddress providerAddr)
Definition: JsonConfigConverter.java:201

◆ spiProvider()

static ModelNode org.keycloak.subsystem.server.extension.JsonConfigConverter.spiProvider ( JsonNode  providerNode,
PathAddress  providerAddr 
)
inlinestaticprivate
201  {
202  ModelNode op = Util.createAddOperation(providerAddr);
203 
204  ModelNode properties = new ModelNode();
205 
206  Iterator<String> propNames = providerNode.fieldNames();
207  while (propNames.hasNext()) {
208  String propName = propNames.next();
209 
210  if ("enabled".equals(propName)) {
211  op.get(ProviderResourceDefinition.ENABLED.getName()).set(providerNode.get(propName).asBoolean());
212  } else {
213  if (providerNode.get(propName).isArray()) {
214  properties.get(propName).set(makeArrayText(providerNode.get(propName)));
215  } else {
216  properties.get(propName).set(providerNode.get(propName).asText());
217  }
218  }
219  }
220 
221  if (properties.isDefined() && !properties.asPropertyList().isEmpty()) {
222  op.get("properties").set(properties);
223  }
224 
225  if (!op.hasDefined(ProviderResourceDefinition.ENABLED.getName())) {
226  op.get(ProviderResourceDefinition.ENABLED.getName()).set(ProviderResourceDefinition.ENABLED.getDefaultValue());
227  }
228 
229  return op;
230  }
static String makeArrayText(JsonNode arrayNode)
Definition: JsonConfigConverter.java:232

◆ spis()

static Collection<ModelNode> org.keycloak.subsystem.server.extension.JsonConfigConverter.spis ( JsonNode  root,
PathAddress  addr 
)
inlinestaticprivate
167  {
168  List<ModelNode> spis = new ArrayList<>();
169 
170  Iterator<String> spiIterator = root.fieldNames();
171  while (spiIterator.hasNext()) {
172  String spiName = spiIterator.next();
173  if (NON_SPI_LIST.contains(spiName)) continue;
174 
175  PathAddress spiAddr = addr.append("spi", spiName);
176  spis.addAll(spi(root, spiAddr, spiName));
177  }
178 
179  return spis;
180  }
static Collection< ModelNode > spis(JsonNode root, PathAddress addr)
Definition: JsonConfigConverter.java:167
static final List< String > NON_SPI_LIST
Definition: JsonConfigConverter.java:50
static List< ModelNode > spi(JsonNode root, PathAddress spiAddr, String spiName)
Definition: JsonConfigConverter.java:182

◆ theme()

static ModelNode org.keycloak.subsystem.server.extension.JsonConfigConverter.theme ( JsonNode  root,
PathAddress  addr 
)
inlinestaticprivate
121  {
122  JsonNode themeNode = getNode(root, "theme");
123  ModelNode op = Util.createAddOperation(addr);
124 
125  JsonNode targetNode = getNode(themeNode, "staticMaxAge");
126  Long lValue = STATIC_MAX_AGE.getDefaultValue().asLong();
127  if (targetNode != null) lValue = targetNode.asLong(lValue);
128  op.get(STATIC_MAX_AGE.getName()).set(lValue);
129 
130  targetNode = getNode(themeNode, "cacheTemplates");
131  Boolean bValue = CACHE_TEMPLATES.getDefaultValue().asBoolean();
132  if (targetNode != null) bValue = targetNode.asBoolean(bValue);
133  op.get(CACHE_TEMPLATES.getName()).set(bValue);
134 
135  targetNode = getNode(themeNode, "cacheThemes");
136  bValue = CACHE_THEMES.getDefaultValue().asBoolean();
137  if (targetNode != null) bValue = targetNode.asBoolean(bValue);
138  op.get(CACHE_THEMES.getName()).set(bValue);
139 
140  targetNode = getNode(themeNode, "folder", "dir");
141  String sValue = DIR.getDefaultValue().asString();
142  if (targetNode != null) sValue = targetNode.asText(sValue);
143  op.get(DIR.getName()).set(sValue);
144 
145  targetNode = getNode(themeNode, "welcomeTheme");
146  if (targetNode != null) op.get(WELCOME_THEME.getName()).set(targetNode.asText());
147 
148  targetNode = getNode(themeNode, "default");
149  if (targetNode != null) op.get(DEFAULT.getName()).set(targetNode.asText());
150 
151  targetNode = getNode(themeNode, "module", "modules");
152  if (targetNode != null && targetNode.isArray()) {
153  op.get(MODULES.getName()).set(themeModules(targetNode));
154  }
155 
156  return op;
157  }
static ModelNode themeModules(JsonNode modulesNode)
Definition: JsonConfigConverter.java:159
static JsonNode getNode(JsonNode root, String... path)
Definition: JsonConfigConverter.java:248

◆ themeModules()

static ModelNode org.keycloak.subsystem.server.extension.JsonConfigConverter.themeModules ( JsonNode  modulesNode)
inlinestaticprivate
159  {
160  ModelNode modules = new ModelNode();
161  for (JsonNode node : modulesNode) {
162  modules.add(node.asText());
163  }
164  return modules;
165  }

メンバ詳解

◆ NON_SPI_LIST

final List<String> org.keycloak.subsystem.server.extension.JsonConfigConverter.NON_SPI_LIST = new ArrayList<>()
staticprivate

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