keycloak
公開メンバ関数 | 非公開メンバ関数 | 全メンバ一覧
org.keycloak.subsystem.server.extension.KeycloakSubsystemParser クラス
org.keycloak.subsystem.server.extension.KeycloakSubsystemParser の継承関係図
Inheritance graph
org.keycloak.subsystem.server.extension.KeycloakSubsystemParser 連携図
Collaboration graph

公開メンバ関数

void readElement (final XMLExtendedStreamReader reader, final List< ModelNode > list) throws XMLStreamException
 
void writeContent (final XMLExtendedStreamWriter writer, final SubsystemMarshallingContext context) throws XMLStreamException
 

非公開メンバ関数

void readProviders (final XMLExtendedStreamReader reader, ModelNode addKeycloakSub) throws XMLStreamException
 
void readTheme (final List< ModelNode > list, final XMLExtendedStreamReader reader) throws XMLStreamException
 
void readModules (final XMLExtendedStreamReader reader, ModelNode addThemeDefaults) throws XMLStreamException
 
void readSpi (final List< ModelNode > list, final XMLExtendedStreamReader reader) throws XMLStreamException
 
void readProvider (final List< ModelNode > list, String spiName, final XMLExtendedStreamReader reader) throws XMLStreamException
 
void readProperties (final PropertiesAttributeDefinition attrDef, ModelNode addOp, final XMLExtendedStreamReader reader) throws XMLStreamException
 
int nextTag (XMLExtendedStreamReader reader) throws XMLStreamException
 
void writeThemeDefaults (XMLExtendedStreamWriter writer, SubsystemMarshallingContext context) throws XMLStreamException
 
void writeSpis (XMLExtendedStreamWriter writer, SubsystemMarshallingContext context) throws XMLStreamException
 
void writeProviders (XMLExtendedStreamWriter writer, ModelNode spiElements) throws XMLStreamException
 
void writeWebContext (XMLExtendedStreamWriter writer, SubsystemMarshallingContext context) throws XMLStreamException
 
void writeAdmin (XMLExtendedStreamWriter writer, SubsystemMarshallingContext context) throws XMLStreamException
 
void writeScheduledTaskInterval (XMLExtendedStreamWriter writer, SubsystemMarshallingContext context) throws XMLStreamException
 
void writeList (XMLExtendedStreamWriter writer, ModelNode context, AttributeDefinition def, String elementName) throws XMLStreamException
 

詳解

The subsystem parser, which uses stax to read and write to and from xml

関数詳解

◆ nextTag()

int org.keycloak.subsystem.server.extension.KeycloakSubsystemParser.nextTag ( XMLExtendedStreamReader  reader) throws XMLStreamException
inlineprivate
178  {
179  return reader.nextTag();
180  }

◆ readElement()

void org.keycloak.subsystem.server.extension.KeycloakSubsystemParser.readElement ( final XMLExtendedStreamReader  reader,
final List< ModelNode >  list 
) throws XMLStreamException
inline
58  {
59  // Require no attributes
60  ParseUtils.requireNoAttributes(reader);
61  ModelNode addKeycloakSub = Util.createAddOperation(PathAddress.pathAddress(PATH_SUBSYSTEM));
62  list.add(addKeycloakSub);
63 
64  while (reader.hasNext() && nextTag(reader) != END_ELEMENT) {
65  if (reader.getLocalName().equals(WEB_CONTEXT.getXmlName())) {
66  WEB_CONTEXT.parseAndSetParameter(reader.getElementText(), addKeycloakSub, reader);
67  } else if (reader.getLocalName().equals(PROVIDERS.getXmlName())) {
68  readProviders(reader, addKeycloakSub);
69  } else if (reader.getLocalName().equals(MASTER_REALM_NAME.getXmlName())) {
70  MASTER_REALM_NAME.parseAndSetParameter(reader.getElementText(), addKeycloakSub, reader);
71  } else if (reader.getLocalName().equals(SCHEDULED_TASK_INTERVAL.getXmlName())) {
72  SCHEDULED_TASK_INTERVAL.parseAndSetParameter(reader.getElementText(), addKeycloakSub, reader);
73  } else if (reader.getLocalName().equals(ThemeResourceDefinition.TAG_NAME)) {
74  readTheme(list, reader);
75  } else if (reader.getLocalName().equals(SpiResourceDefinition.TAG_NAME)) {
76  readSpi(list, reader);
77  } else {
78  throw new XMLStreamException("Unknown keycloak-server subsystem tag: " + reader.getLocalName());
79  }
80  }
81  }
void readTheme(final List< ModelNode > list, final XMLExtendedStreamReader reader)
Definition: KeycloakSubsystemParser.java:89
void readSpi(final List< ModelNode > list, final XMLExtendedStreamReader reader)
Definition: KeycloakSubsystemParser.java:116
int nextTag(XMLExtendedStreamReader reader)
Definition: KeycloakSubsystemParser.java:178
void readProviders(final XMLExtendedStreamReader reader, ModelNode addKeycloakSub)
Definition: KeycloakSubsystemParser.java:83

◆ readModules()

void org.keycloak.subsystem.server.extension.KeycloakSubsystemParser.readModules ( final XMLExtendedStreamReader  reader,
ModelNode  addThemeDefaults 
) throws XMLStreamException
inlineprivate
110  {
111  while (reader.hasNext() && nextTag(reader) != END_ELEMENT) {
112  MODULES.parseAndAddParameterElement(reader.getElementText(),addThemeDefaults, reader);
113  }
114  }
int nextTag(XMLExtendedStreamReader reader)
Definition: KeycloakSubsystemParser.java:178

◆ readProperties()

void org.keycloak.subsystem.server.extension.KeycloakSubsystemParser.readProperties ( final PropertiesAttributeDefinition  attrDef,
ModelNode  addOp,
final XMLExtendedStreamReader  reader 
) throws XMLStreamException
inlineprivate
155  {
156  while (nextTag(reader) != END_ELEMENT) {
157  int attrCount = reader.getAttributeCount();
158  if (attrCount != 2) throw new XMLStreamException("Property must have only two attributes");
159  String name = "";
160  String value = "";
161  for (int i=0 ; i < 2; i++) {
162  String attrName = reader.getAttributeLocalName(i);
163  String attrValue = reader.getAttributeValue(i);
164  if (attrName.equals("name")) {
165  name = attrValue;
166  } else if (attrName.equals("value")) {
167  value = attrValue;
168  } else {
169  throw new XMLStreamException("Property can only have attributes named 'name' and 'value'");
170  }
171  }
172  attrDef.parseAndAddParameterElement(name, value, addOp, reader);
173  nextTag(reader);
174  }
175  }
int nextTag(XMLExtendedStreamReader reader)
Definition: KeycloakSubsystemParser.java:178

◆ readProvider()

void org.keycloak.subsystem.server.extension.KeycloakSubsystemParser.readProvider ( final List< ModelNode >  list,
String  spiName,
final XMLExtendedStreamReader  reader 
) throws XMLStreamException
inlineprivate
134  {
135  String[] attributes = ParseUtils.requireAttributes(reader, "name", ENABLED.getXmlName());
136  String providerName = attributes[0];
137  String enabled = attributes[1];
138 
139  ModelNode addProvider = new ModelNode();
140  addProvider.get(ModelDescriptionConstants.OP).set(ModelDescriptionConstants.ADD);
141  PathAddress addr = PathAddress.pathAddress(PathElement.pathElement(ModelDescriptionConstants.SUBSYSTEM, KeycloakExtension.SUBSYSTEM_NAME),
142  PathElement.pathElement(SpiResourceDefinition.TAG_NAME, spiName),
143  PathElement.pathElement(ProviderResourceDefinition.TAG_NAME, providerName));
144  addProvider.get(ModelDescriptionConstants.OP_ADDR).set(addr.toModelNode());
145  addProvider.get(ENABLED.getName()).set(Boolean.valueOf(enabled));
146  list.add(addProvider);
147 
148  while (nextTag(reader) != END_ELEMENT) {
149  if (reader.getLocalName().equals(PROPERTIES.getXmlName())) {
150  readProperties(PROPERTIES, addProvider, reader);
151  }
152  }
153  }
void readProperties(final PropertiesAttributeDefinition attrDef, ModelNode addOp, final XMLExtendedStreamReader reader)
Definition: KeycloakSubsystemParser.java:155
int nextTag(XMLExtendedStreamReader reader)
Definition: KeycloakSubsystemParser.java:178

◆ readProviders()

void org.keycloak.subsystem.server.extension.KeycloakSubsystemParser.readProviders ( final XMLExtendedStreamReader  reader,
ModelNode  addKeycloakSub 
) throws XMLStreamException
inlineprivate
83  {
84  while (reader.hasNext() && nextTag(reader) != END_ELEMENT) {
85  PROVIDERS.parseAndAddParameterElement(reader.getElementText(),addKeycloakSub, reader);
86  }
87  }
int nextTag(XMLExtendedStreamReader reader)
Definition: KeycloakSubsystemParser.java:178

◆ readSpi()

void org.keycloak.subsystem.server.extension.KeycloakSubsystemParser.readSpi ( final List< ModelNode >  list,
final XMLExtendedStreamReader  reader 
) throws XMLStreamException
inlineprivate
116  {
117  String spiName = ParseUtils.requireAttributes(reader, "name")[0];
118  ModelNode addSpi = new ModelNode();
119  addSpi.get(ModelDescriptionConstants.OP).set(ModelDescriptionConstants.ADD);
120  PathAddress addr = PathAddress.pathAddress(PathElement.pathElement(ModelDescriptionConstants.SUBSYSTEM, KeycloakExtension.SUBSYSTEM_NAME),
121  PathElement.pathElement(SpiResourceDefinition.TAG_NAME, spiName));
122  addSpi.get(ModelDescriptionConstants.OP_ADDR).set(addr.toModelNode());
123  list.add(addSpi);
124 
125  while (reader.hasNext() && nextTag(reader) != END_ELEMENT) {
126  if (reader.getLocalName().equals(DEFAULT_PROVIDER.getXmlName())) {
127  DEFAULT_PROVIDER.parseAndSetParameter(reader.getElementText(), addSpi, reader);
128  } else if (reader.getLocalName().equals(ProviderResourceDefinition.TAG_NAME)) {
129  readProvider(list, spiName, reader);
130  }
131  }
132  }
void readProvider(final List< ModelNode > list, String spiName, final XMLExtendedStreamReader reader)
Definition: KeycloakSubsystemParser.java:134
int nextTag(XMLExtendedStreamReader reader)
Definition: KeycloakSubsystemParser.java:178

◆ readTheme()

void org.keycloak.subsystem.server.extension.KeycloakSubsystemParser.readTheme ( final List< ModelNode >  list,
final XMLExtendedStreamReader  reader 
) throws XMLStreamException
inlineprivate
89  {
90  ModelNode addThemeDefaults = new ModelNode();
91  addThemeDefaults.get(ModelDescriptionConstants.OP).set(ModelDescriptionConstants.ADD);
92  PathAddress addr = PathAddress.pathAddress(PathElement.pathElement(ModelDescriptionConstants.SUBSYSTEM, KeycloakExtension.SUBSYSTEM_NAME),
93  PathElement.pathElement(ThemeResourceDefinition.TAG_NAME, ThemeResourceDefinition.RESOURCE_NAME));
94  addThemeDefaults.get(ModelDescriptionConstants.OP_ADDR).set(addr.toModelNode());
95  list.add(addThemeDefaults);
96 
97  while (reader.hasNext() && nextTag(reader) != END_ELEMENT) {
98  String tagName = reader.getLocalName();
99  if (MODULES.getName().equals(tagName)) {
100  readModules(reader, addThemeDefaults);
101  continue;
102  }
103 
104  SimpleAttributeDefinition def = KeycloakExtension.THEME_DEFINITION.lookup(tagName);
105  if (def == null) throw new XMLStreamException("Unknown theme tag " + tagName);
106  def.parseAndSetParameter(reader.getElementText(), addThemeDefaults, reader);
107  }
108  }
int nextTag(XMLExtendedStreamReader reader)
Definition: KeycloakSubsystemParser.java:178
void readModules(final XMLExtendedStreamReader reader, ModelNode addThemeDefaults)
Definition: KeycloakSubsystemParser.java:110

◆ writeAdmin()

void org.keycloak.subsystem.server.extension.KeycloakSubsystemParser.writeAdmin ( XMLExtendedStreamWriter  writer,
SubsystemMarshallingContext  context 
) throws XMLStreamException
inlineprivate
255  {
256  if (!context.getModelNode().get(MASTER_REALM_NAME.getName()).isDefined()) {
257  return;
258  }
259 
260  MASTER_REALM_NAME.marshallAsElement(context.getModelNode(), writer);
261  }

◆ writeContent()

void org.keycloak.subsystem.server.extension.KeycloakSubsystemParser.writeContent ( final XMLExtendedStreamWriter  writer,
final SubsystemMarshallingContext  context 
) throws XMLStreamException
inline
186  {
187  context.startSubsystemElement(KeycloakExtension.NAMESPACE, false);
188  writeWebContext(writer, context);
189  writeList(writer, context.getModelNode(), PROVIDERS, "provider");
190  writeAdmin(writer, context);
191  writeScheduledTaskInterval(writer, context);
192  writeThemeDefaults(writer, context);
193  writeSpis(writer, context);
194  writer.writeEndElement();
195  }
void writeScheduledTaskInterval(XMLExtendedStreamWriter writer, SubsystemMarshallingContext context)
Definition: KeycloakSubsystemParser.java:263
void writeWebContext(XMLExtendedStreamWriter writer, SubsystemMarshallingContext context)
Definition: KeycloakSubsystemParser.java:247
void writeList(XMLExtendedStreamWriter writer, ModelNode context, AttributeDefinition def, String elementName)
Definition: KeycloakSubsystemParser.java:271
void writeSpis(XMLExtendedStreamWriter writer, SubsystemMarshallingContext context)
Definition: KeycloakSubsystemParser.java:217
void writeThemeDefaults(XMLExtendedStreamWriter writer, SubsystemMarshallingContext context)
Definition: KeycloakSubsystemParser.java:197
void writeAdmin(XMLExtendedStreamWriter writer, SubsystemMarshallingContext context)
Definition: KeycloakSubsystemParser.java:255

◆ writeList()

void org.keycloak.subsystem.server.extension.KeycloakSubsystemParser.writeList ( XMLExtendedStreamWriter  writer,
ModelNode  context,
AttributeDefinition  def,
String  elementName 
) throws XMLStreamException
inlineprivate
271  {
272  if (!context.get(def.getName()).isDefined()) {
273  return;
274  }
275 
276  writer.writeStartElement(def.getXmlName());
277  ModelNode modules = context.get(def.getName());
278  for (ModelNode module : modules.asList()) {
279  writer.writeStartElement(elementName);
280  writer.writeCharacters(module.asString());
281  writer.writeEndElement();
282  }
283  writer.writeEndElement();
284  }

◆ writeProviders()

void org.keycloak.subsystem.server.extension.KeycloakSubsystemParser.writeProviders ( XMLExtendedStreamWriter  writer,
ModelNode  spiElements 
) throws XMLStreamException
inlineprivate
232  {
233  if (!spiElements.get(ProviderResourceDefinition.TAG_NAME).isDefined()) {
234  return;
235  }
236 
237  for (Property provider : spiElements.get(ProviderResourceDefinition.TAG_NAME).asPropertyList()) {
238  writer.writeStartElement(ProviderResourceDefinition.TAG_NAME);
239  writer.writeAttribute("name", provider.getName());
240  ModelNode providerElements = provider.getValue();
241  ENABLED.marshallAsAttribute(providerElements, writer);
242  PROPERTIES.marshallAsElement(providerElements, writer);
243  writer.writeEndElement();
244  }
245  }

◆ writeScheduledTaskInterval()

void org.keycloak.subsystem.server.extension.KeycloakSubsystemParser.writeScheduledTaskInterval ( XMLExtendedStreamWriter  writer,
SubsystemMarshallingContext  context 
) throws XMLStreamException
inlineprivate
263  {
264  if (!context.getModelNode().get(SCHEDULED_TASK_INTERVAL.getName()).isDefined()) {
265  return;
266  }
267 
268  SCHEDULED_TASK_INTERVAL.marshallAsElement(context.getModelNode(), writer);
269  }

◆ writeSpis()

void org.keycloak.subsystem.server.extension.KeycloakSubsystemParser.writeSpis ( XMLExtendedStreamWriter  writer,
SubsystemMarshallingContext  context 
) throws XMLStreamException
inlineprivate
217  {
218  if (!context.getModelNode().get(SpiResourceDefinition.TAG_NAME).isDefined()) {
219  return;
220  }
221 
222  for (Property spi : context.getModelNode().get(SpiResourceDefinition.TAG_NAME).asPropertyList()) {
223  writer.writeStartElement(SpiResourceDefinition.TAG_NAME);
224  writer.writeAttribute("name", spi.getName());
225  ModelNode spiElements = spi.getValue();
226  DEFAULT_PROVIDER.marshallAsElement(spiElements, writer);
227  writeProviders(writer, spiElements);
228  writer.writeEndElement();
229  }
230  }
void writeProviders(XMLExtendedStreamWriter writer, ModelNode spiElements)
Definition: KeycloakSubsystemParser.java:232

◆ writeThemeDefaults()

void org.keycloak.subsystem.server.extension.KeycloakSubsystemParser.writeThemeDefaults ( XMLExtendedStreamWriter  writer,
SubsystemMarshallingContext  context 
) throws XMLStreamException
inlineprivate
197  {
198  if (!context.getModelNode().get(ThemeResourceDefinition.TAG_NAME).isDefined()) {
199  return;
200  }
201 
202  writer.writeStartElement(ThemeResourceDefinition.TAG_NAME);
203  ModelNode themeElements = context.getModelNode().get(ThemeResourceDefinition.TAG_NAME, ThemeResourceDefinition.RESOURCE_NAME);
204  for (AttributeDefinition def : ThemeResourceDefinition.ALL_ATTRIBUTES) {
205  if (themeElements.hasDefined(def.getName())) {
206  if (def == MODULES) {
207  ModelNode themeContext = context.getModelNode().get("theme", "defaults");
208  writeList(writer, themeContext, def, "module");
209  } else {
210  def.marshallAsElement(themeElements, writer);
211  }
212  }
213  }
214  writer.writeEndElement();
215  }
void writeList(XMLExtendedStreamWriter writer, ModelNode context, AttributeDefinition def, String elementName)
Definition: KeycloakSubsystemParser.java:271

◆ writeWebContext()

void org.keycloak.subsystem.server.extension.KeycloakSubsystemParser.writeWebContext ( XMLExtendedStreamWriter  writer,
SubsystemMarshallingContext  context 
) throws XMLStreamException
inlineprivate
247  {
248  if (!context.getModelNode().get(WEB_CONTEXT.getName()).isDefined()) {
249  return;
250  }
251 
252  WEB_CONTEXT.marshallAsElement(context.getModelNode(), writer);
253  }

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