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

関数

void updateConfig (ModelNode operation, ModelNode config)
 
ModelNode getConfig ()
 
void setWebContext (String webContext)
 
String getWebContext ()
 
boolean isKeycloakServerDeployment (String deploymentName)
 

静的変数

static final KeycloakAdapterConfigService INSTANCE = new KeycloakAdapterConfigService()
 
static final String DEPLOYMENT_NAME = "keycloak-server.war"
 
static ModelNode fullConfig = new ModelNode()
 

非公開メンバ関数

 KeycloakAdapterConfigService ()
 
void massageScheduledTaskInterval (ModelNode copy)
 
void massageMasterRealm (ModelNode copy)
 
void massageTheme (ModelNode copy)
 
void massageSpis (ModelNode copy)
 
void massageProviders (ModelNode spi)
 
void massageProviderProps (ModelNode provider)
 
boolean isArray (String value)
 

非公開変数類

String webContext
 

詳解

This service keeps track of the entire Keycloak management model so as to provide configuration to the Keycloak Server.

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

構築子と解体子

◆ KeycloakAdapterConfigService()

org.keycloak.subsystem.server.extension.KeycloakAdapterConfigService.KeycloakAdapterConfigService ( )
inlineprivate
43  {
44  }

関数詳解

◆ getConfig()

ModelNode org.keycloak.subsystem.server.extension.KeycloakAdapterConfigService.getConfig ( )
inlinepackage
68  {
69  ModelNode copy = fullConfig.clone();
70  //System.out.println("******** BEFORE *************");
71  //System.out.println(copy);
72  //System.out.println("*****************************");
73  copy.remove("web-context");
75  massageMasterRealm(copy);
76  massageTheme(copy);
77  massageSpis(copy);
78  //System.out.println("******** JSON *************");
79  //System.out.println(copy.resolve().toJSONString(false));
80  //System.out.println("**********************");
81  return copy;
82  }
static ModelNode fullConfig
Definition: KeycloakAdapterConfigService.java:38
void massageTheme(ModelNode copy)
Definition: KeycloakAdapterConfigService.java:99
void massageSpis(ModelNode copy)
Definition: KeycloakAdapterConfigService.java:118
void massageScheduledTaskInterval(ModelNode copy)
Definition: KeycloakAdapterConfigService.java:87
void massageMasterRealm(ModelNode copy)
Definition: KeycloakAdapterConfigService.java:93

◆ getWebContext()

String org.keycloak.subsystem.server.extension.KeycloakAdapterConfigService.getWebContext ( )
inlinepackage
171  {
172  return webContext;
173  }
String webContext
Definition: KeycloakAdapterConfigService.java:40

◆ isArray()

boolean org.keycloak.subsystem.server.extension.KeycloakAdapterConfigService.isArray ( String  value)
inlineprivate
163  {
164  return value.startsWith("[") && value.endsWith("]");
165  }

◆ isKeycloakServerDeployment()

boolean org.keycloak.subsystem.server.extension.KeycloakAdapterConfigService.isKeycloakServerDeployment ( String  deploymentName)
inlinepackage
175  {
176  return DEPLOYMENT_NAME.equals(deploymentName);
177  }
static final String DEPLOYMENT_NAME
Definition: KeycloakAdapterConfigService.java:36

◆ massageMasterRealm()

void org.keycloak.subsystem.server.extension.KeycloakAdapterConfigService.massageMasterRealm ( ModelNode  copy)
inlineprivate
93  {
94  if (!copy.hasDefined("master-realm-name")) return;
95  ModelNode master = copy.remove("master-realm-name");
96  copy.get("admin", "realm").set(master);
97  }

◆ massageProviderProps()

void org.keycloak.subsystem.server.extension.KeycloakAdapterConfigService.massageProviderProps ( ModelNode  provider)
inlineprivate
150  {
151  if (!provider.hasDefined("properties")) return;
152  ModelNode providerProps = provider.remove("properties");
153  for (Property prop : providerProps.asPropertyList()) {
154  ModelNode value = prop.getValue();
155  if (isArray(value.asString().trim())) {
156  provider.get(prop.getName()).set(ModelNode.fromString(value.asString()).asList());
157  } else {
158  provider.get(prop.getName()).set(value);
159  }
160  }
161  }
boolean isArray(String value)
Definition: KeycloakAdapterConfigService.java:163

◆ massageProviders()

void org.keycloak.subsystem.server.extension.KeycloakAdapterConfigService.massageProviders ( ModelNode  spi)
inlineprivate
138  {
139  if (!spi.hasDefined("provider")) return;
140  ModelNode providers = spi.remove("provider");
141  for (Property prop : providers.asPropertyList()) {
142  ModelNode provider = prop.getValue();
143  if (provider.has("properties")) {
144  massageProviderProps(provider);
145  }
146  spi.get(prop.getName()).set(provider);
147  }
148  }
void massageProviderProps(ModelNode provider)
Definition: KeycloakAdapterConfigService.java:150

◆ massageScheduledTaskInterval()

void org.keycloak.subsystem.server.extension.KeycloakAdapterConfigService.massageScheduledTaskInterval ( ModelNode  copy)
inlineprivate
87  {
88  if (!copy.hasDefined("scheduled-task-interval")) return;
89  ModelNode taskInterval = copy.remove("scheduled-task-interval");
90  copy.get("scheduled", "interval").set(taskInterval);
91  }

◆ massageSpis()

void org.keycloak.subsystem.server.extension.KeycloakAdapterConfigService.massageSpis ( ModelNode  copy)
inlineprivate
118  {
119  if (!copy.hasDefined("spi")) return;
120  ModelNode spis = copy.remove("spi");
121 
122  for (Property prop : spis.asPropertyList()) {
123  ModelNode spi = prop.getValue();
124 
125  if (spi.has("provider")) {
126  massageProviders(spi);
127  }
128 
129  if (spi.has("default-provider")) {
130  ModelNode defaultProvider = spi.remove("default-provider");
131  spi.get("provider").set(defaultProvider);
132  }
133 
134  copy.get(prop.getName()).set(spi);
135  }
136  }
void massageProviders(ModelNode spi)
Definition: KeycloakAdapterConfigService.java:138

◆ massageTheme()

void org.keycloak.subsystem.server.extension.KeycloakAdapterConfigService.massageTheme ( ModelNode  copy)
inlineprivate
99  {
100  if (!copy.hasDefined("theme")) return;
101  if (!copy.get("theme").hasDefined("defaults")) return;
102 
103  ModelNode themeDefaults = copy.get("theme", "defaults");
104  copy.get("theme").set(themeDefaults);
105 
106  if (copy.has("theme", "dir")) {
107  ModelNode dir = copy.get("theme", "dir");
108  copy.get("theme", "folder", "dir").set(dir);
109  copy.get("theme").remove("dir");
110  }
111 
112  if (copy.has("theme", "modules")) {
113  ModelNode modules = copy.get("theme").remove("modules");
114  copy.get("theme", "module", "modules").set(modules);
115  }
116  }

◆ setWebContext()

void org.keycloak.subsystem.server.extension.KeycloakAdapterConfigService.setWebContext ( String  webContext)
inlinepackage
167  {
168  this.webContext = webContext;
169  }
String webContext
Definition: KeycloakAdapterConfigService.java:40

◆ updateConfig()

void org.keycloak.subsystem.server.extension.KeycloakAdapterConfigService.updateConfig ( ModelNode  operation,
ModelNode  config 
)
inlinepackage
46  {
47  PathAddress address = PathAddress.pathAddress(operation.get(ADDRESS));
48  address = address.subAddress(1); // remove root (subsystem=keycloak-server)
49 
50  ModelNode newConfig = fullConfig.clone();
51  ModelNode subNode = newConfig;
52  for (PathElement pathElement : address) {
53  subNode = subNode.get(pathElement.getKey(), pathElement.getValue());
54  }
55 
56  subNode.set(config.clone());
57 
58  // remove undefined properties
59  for (Property prop : subNode.asPropertyList()) {
60  if (!prop.getValue().isDefined()) {
61  subNode.remove(prop.getName());
62  }
63  }
64 
65  fullConfig = newConfig;
66  }
static ModelNode fullConfig
Definition: KeycloakAdapterConfigService.java:38

メンバ詳解

◆ DEPLOYMENT_NAME

final String org.keycloak.subsystem.server.extension.KeycloakAdapterConfigService.DEPLOYMENT_NAME = "keycloak-server.war"
staticpackage

◆ fullConfig

ModelNode org.keycloak.subsystem.server.extension.KeycloakAdapterConfigService.fullConfig = new ModelNode()
staticpackage

◆ INSTANCE

final KeycloakAdapterConfigService org.keycloak.subsystem.server.extension.KeycloakAdapterConfigService.INSTANCE = new KeycloakAdapterConfigService()
staticpackage

◆ webContext

String org.keycloak.subsystem.server.extension.KeycloakAdapterConfigService.webContext
private

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