gluu
公開メンバ関数 | 非公開変数類 | 静的非公開変数類 | 全メンバ一覧
org.gluu.oxtrust.action.ManageCustomScriptAction クラス
org.gluu.oxtrust.action.ManageCustomScriptAction の継承関係図
Inheritance graph
org.gluu.oxtrust.action.ManageCustomScriptAction 連携図
Collaboration graph

公開メンバ関数

String modify ()
 
String save ()
 
String cancel () throws Exception
 
Map< CustomScriptType, List< CustomScript > > getCustomScriptsByTypes ()
 
String getId (Object obj)
 
void addCustomScript (CustomScriptType scriptType)
 
void removeCustomScript (CustomScript removeCustomScript)
 
void addItemToSimpleProperties (List< SimpleProperty > simpleProperties)
 
void removeItemFromSimpleProperties (List< SimpleProperty > simpleProperties, SimpleProperty simpleProperty)
 
void addItemToSimpleCustomProperties (List< SimpleCustomProperty > simpleCustomProperties)
 
void removeItemFromSimpleCustomProperties (List< SimpleCustomProperty > simpleCustomProperties, SimpleCustomProperty simpleCustomProperty)
 
boolean hasCustomScriptError (CustomScript customScript)
 
String getCustomScriptError (CustomScript customScript)
 
boolean isInitialized ()
 

非公開変数類

Logger log
 
FacesMessages facesMessages
 
ConversationService conversationService
 
OrganizationService organizationService
 
ApplianceService applianceService
 
AbstractCustomScriptService customScriptService
 
AppConfiguration appConfiguration
 
Map< CustomScriptType, List< CustomScript > > customScriptsByTypes
 
boolean initialized
 

静的非公開変数類

static final long serialVersionUID = -3823022039248381963L
 
static final Pattern NAME_PATTERN = Pattern.compile("^[a-zA-Z0-9_]+$")
 

詳解

Add/Modify custom script configurations

著者
Yuriy Movchan Date: 12/29/2014

関数詳解

◆ addCustomScript()

void org.gluu.oxtrust.action.ManageCustomScriptAction.addCustomScript ( CustomScriptType  scriptType)
inline
232  {
233  List<CustomScript> customScriptsByType = this.customScriptsByTypes.get(scriptType);
234 
235  CustomScript customScript;
236  if (CustomScriptType.PERSON_AUTHENTICATION == scriptType) {
237  AuthenticationCustomScript authenticationCustomScript = new AuthenticationCustomScript();
238  authenticationCustomScript.setModuleProperties(new ArrayList<SimpleCustomProperty>());
239  authenticationCustomScript.setUsageType(AuthenticationScriptUsageType.INTERACTIVE);
240 
241  customScript = authenticationCustomScript;
242  } else {
243  customScript = new CustomScript();
244  customScript.setModuleProperties(new ArrayList<SimpleCustomProperty>());
245  }
246 
247  customScript.setLocationType(ScriptLocationType.LDAP);
248  customScript.setScriptType(scriptType);
249  customScript.setProgrammingLanguage(ProgrammingLanguage.PYTHON);
250  customScript.setConfigurationProperties(new ArrayList<SimpleExtendedCustomProperty>());
251 
252  customScriptsByType.add(customScript);
253  }
Map< CustomScriptType, List< CustomScript > > customScriptsByTypes
Definition: ManageCustomScriptAction.java:84

◆ addItemToSimpleCustomProperties()

void org.gluu.oxtrust.action.ManageCustomScriptAction.addItemToSimpleCustomProperties ( List< SimpleCustomProperty >  simpleCustomProperties)
inline

org.gluu.oxtrust.model.SimpleCustomPropertiesListModelを実装しています。

283  {
284  if (simpleCustomProperties != null) {
285  simpleCustomProperties.add(new SimpleExtendedCustomProperty("", ""));
286  }
287  }

◆ addItemToSimpleProperties()

void org.gluu.oxtrust.action.ManageCustomScriptAction.addItemToSimpleProperties ( List< SimpleProperty >  simpleProperties)
inline

org.gluu.oxtrust.model.SimplePropertiesListModelを実装しています。

269  {
270  if (simpleProperties != null) {
271  simpleProperties.add(new SimpleProperty(""));
272  }
273  }

◆ cancel()

String org.gluu.oxtrust.action.ManageCustomScriptAction.cancel ( ) throws Exception
inline
216  {
217  facesMessages.add(FacesMessage.SEVERITY_INFO, "Custom script configuration not updated");
218 
219  conversationService.endConversation();
220 
221  return OxTrustConstants.RESULT_SUCCESS;
222  }
ConversationService conversationService
Definition: ManageCustomScriptAction.java:70
FacesMessages facesMessages
Definition: ManageCustomScriptAction.java:67

◆ getCustomScriptError()

String org.gluu.oxtrust.action.ManageCustomScriptAction.getCustomScriptError ( CustomScript  customScript)
inline
302  {
303  if ((customScript == null) || (customScript.getDn() == null)) {
304  return null;
305  }
306 
307  CustomScript currentScript = customScriptService.getCustomScriptByDn(customScript.getDn(), "oxScriptError");
308  if ((currentScript != null) && (currentScript.getScriptError() != null)) {
309  return currentScript.getScriptError().getStackTrace();
310  }
311 
312  return null;
313  }
AbstractCustomScriptService customScriptService
Definition: ManageCustomScriptAction.java:79

◆ getCustomScriptsByTypes()

Map<CustomScriptType, List<CustomScript> > org.gluu.oxtrust.action.ManageCustomScriptAction.getCustomScriptsByTypes ( )
inline
224  {
225  return this.customScriptsByTypes;
226  }
Map< CustomScriptType, List< CustomScript > > customScriptsByTypes
Definition: ManageCustomScriptAction.java:84

◆ getId()

String org.gluu.oxtrust.action.ManageCustomScriptAction.getId ( Object  obj)
inline
228  {
229  return "c" + System.identityHashCode(obj) + "Id";
230  }

◆ hasCustomScriptError()

boolean org.gluu.oxtrust.action.ManageCustomScriptAction.hasCustomScriptError ( CustomScript  customScript)
inline
296  {
297  String error = getCustomScriptError(customScript);
298 
299  return error != null;
300  }
String getCustomScriptError(CustomScript customScript)
Definition: ManageCustomScriptAction.java:302

◆ isInitialized()

boolean org.gluu.oxtrust.action.ManageCustomScriptAction.isInitialized ( )
inline
315  {
316  return initialized;
317  }
boolean initialized
Definition: ManageCustomScriptAction.java:86

◆ modify()

String org.gluu.oxtrust.action.ManageCustomScriptAction.modify ( )
inline
88  {
89  if (this.initialized) {
90  return OxTrustConstants.RESULT_SUCCESS;
91  }
92 
93  CustomScriptType[] allowedCustomScriptTypes = this.applianceService.getCustomScriptTypes();
94 
95  this.customScriptsByTypes = new HashMap<CustomScriptType, List<CustomScript>>();
96  for (CustomScriptType customScriptType : allowedCustomScriptTypes) {
97  this.customScriptsByTypes.put(customScriptType, new ArrayList<CustomScript>());
98  }
99 
100  try {
101  List<CustomScript> customScripts = customScriptService.findCustomScripts(Arrays.asList(allowedCustomScriptTypes));
102 
103  for (CustomScript customScript : customScripts) {
104  CustomScriptType customScriptType = customScript.getScriptType();
105  List<CustomScript> customScriptsByType = this.customScriptsByTypes.get(customScriptType);
106 
107  CustomScript typedCustomScript = customScript;
108  if (CustomScriptType.PERSON_AUTHENTICATION == customScriptType) {
109  typedCustomScript = new AuthenticationCustomScript(customScript);
110  }
111 
112  if (typedCustomScript.getConfigurationProperties() == null) {
113  typedCustomScript.setConfigurationProperties(new ArrayList<SimpleExtendedCustomProperty>());
114  }
115 
116  if (typedCustomScript.getModuleProperties() == null) {
117  typedCustomScript.setModuleProperties(new ArrayList<SimpleCustomProperty>());
118  }
119 
120  customScriptsByType.add(typedCustomScript);
121  }
122  } catch (Exception ex) {
123  log.error("Failed to load custom scripts ", ex);
124  facesMessages.add(FacesMessage.SEVERITY_ERROR, "Failed to load custom scripts");
125 
126  conversationService.endConversation();
127 
128  return OxTrustConstants.RESULT_FAILURE;
129  }
130 
131  this.initialized = true;
132 
133  return OxTrustConstants.RESULT_SUCCESS;
134  }
CustomScriptType [] getCustomScriptTypes()
Definition: ApplianceService.java:214
Logger log
Definition: ManageCustomScriptAction.java:64
boolean initialized
Definition: ManageCustomScriptAction.java:86
ApplianceService applianceService
Definition: ManageCustomScriptAction.java:76
AbstractCustomScriptService customScriptService
Definition: ManageCustomScriptAction.java:79
ConversationService conversationService
Definition: ManageCustomScriptAction.java:70
FacesMessages facesMessages
Definition: ManageCustomScriptAction.java:67
Map< CustomScriptType, List< CustomScript > > customScriptsByTypes
Definition: ManageCustomScriptAction.java:84

◆ removeCustomScript()

void org.gluu.oxtrust.action.ManageCustomScriptAction.removeCustomScript ( CustomScript  removeCustomScript)
inline
255  {
256  for (Entry<CustomScriptType, List<CustomScript>> customScriptsByType : this.customScriptsByTypes.entrySet()) {
257  List<CustomScript> customScripts = customScriptsByType.getValue();
258  for (Iterator<CustomScript> iterator = customScripts.iterator(); iterator.hasNext();) {
259  CustomScript customScript = iterator.next();
260  if (System.identityHashCode(removeCustomScript) == System.identityHashCode(customScript)) {
261  iterator.remove();
262  return;
263  }
264  }
265  }
266  }
void removeCustomScript(CustomScript removeCustomScript)
Definition: ManageCustomScriptAction.java:255
Map< CustomScriptType, List< CustomScript > > customScriptsByTypes
Definition: ManageCustomScriptAction.java:84

◆ removeItemFromSimpleCustomProperties()

void org.gluu.oxtrust.action.ManageCustomScriptAction.removeItemFromSimpleCustomProperties ( List< SimpleCustomProperty >  simpleCustomProperties,
SimpleCustomProperty  simpleCustomProperty 
)
inline

org.gluu.oxtrust.model.SimpleCustomPropertiesListModelを実装しています。

290  {
291  if (simpleCustomProperties != null) {
292  simpleCustomProperties.remove(simpleCustomProperty);
293  }
294  }

◆ removeItemFromSimpleProperties()

void org.gluu.oxtrust.action.ManageCustomScriptAction.removeItemFromSimpleProperties ( List< SimpleProperty >  simpleProperties,
SimpleProperty  simpleProperty 
)
inline

org.gluu.oxtrust.model.SimplePropertiesListModelを実装しています。

276  {
277  if (simpleProperties != null) {
278  simpleProperties.remove(simpleProperty);
279  }
280  }

◆ save()

String org.gluu.oxtrust.action.ManageCustomScriptAction.save ( )
inline
136  {
137  try {
138  List<CustomScript> oldCustomScripts = customScriptService.findCustomScripts(Arrays.asList(this.applianceService.getCustomScriptTypes()), "dn", "inum");
139 
140  List<String> updatedInums = new ArrayList<String>();
141 
142  for (Entry<CustomScriptType, List<CustomScript>> customScriptsByType : this.customScriptsByTypes.entrySet()) {
143  List<CustomScript> customScripts = customScriptsByType.getValue();
144 
145  for (CustomScript customScript : customScripts) {
146  String configId = customScript.getName();
147  if (StringHelper.equalsIgnoreCase(configId, OxConstants.SCRIPT_TYPE_INTERNAL_RESERVED_NAME)) {
148  facesMessages.add(FacesMessage.SEVERITY_ERROR, "'%s' is reserved script name", configId);
149  return OxTrustConstants.RESULT_FAILURE;
150  }
151 
152  boolean nameValidation = NAME_PATTERN.matcher(customScript.getName()).matches();
153  if (!nameValidation) {
154  facesMessages.add(FacesMessage.SEVERITY_ERROR, "'%s' is invalid script name. Only alphabetic, numeric and underscore characters are allowed in Script Name", configId);
155  return OxTrustConstants.RESULT_FAILURE;
156  }
157 
158  customScript.setRevision(customScript.getRevision() + 1);
159 
160  boolean update = true;
161  String dn = customScript.getDn();
162  String customScriptId = customScript.getInum();
163  if (StringHelper.isEmpty(dn)) {
164  String basedInum = organizationService.getOrganizationInum();
165  customScriptId = basedInum + "!" + INumGenerator.generate(2);
166  dn = customScriptService.buildDn(customScriptId);
167 
168  customScript.setDn(dn);
169  customScript.setInum(customScriptId);
170  update = false;
171  };
172 
173  customScript.setDn(dn);
174  customScript.setInum(customScriptId);
175 
176  if (ScriptLocationType.LDAP == customScript.getLocationType()) {
177  customScript.removeModuleProperty(CustomScript.LOCATION_PATH_MODEL_PROPERTY);
178  }
179 
180  if ((customScript.getConfigurationProperties() != null) && (customScript.getConfigurationProperties().size() == 0)) {
181  customScript.setConfigurationProperties(null);
182  }
183 
184  if ((customScript.getConfigurationProperties() != null) && (customScript.getModuleProperties().size() == 0)) {
185  customScript.setModuleProperties(null);
186  }
187 
188  updatedInums.add(customScriptId);
189 
190  if (update) {
191  customScriptService.update(customScript);
192  } else {
193  customScriptService.add(customScript);
194  }
195  }
196  }
197 
198  // Remove removed scripts
199  for (CustomScript oldCustomScript : oldCustomScripts) {
200  if (!updatedInums.contains(oldCustomScript.getInum())) {
201  customScriptService.remove(oldCustomScript);
202  }
203  }
204  } catch (BasePersistenceException ex) {
205  log.error("Failed to update custom scripts", ex);
206  facesMessages.add(FacesMessage.SEVERITY_ERROR, "Failed to update custom script configuration");
207 
208  return OxTrustConstants.RESULT_FAILURE;
209  }
210 
211  facesMessages.add(FacesMessage.SEVERITY_INFO, "Custom script configuration updated successfully");
212 
213  return OxTrustConstants.RESULT_SUCCESS;
214  }
String getOrganizationInum()
Definition: OrganizationService.java:202
Logger log
Definition: ManageCustomScriptAction.java:64
static final Pattern NAME_PATTERN
Definition: ManageCustomScriptAction.java:61
AbstractCustomScriptService customScriptService
Definition: ManageCustomScriptAction.java:79
FacesMessages facesMessages
Definition: ManageCustomScriptAction.java:67
Map< CustomScriptType, List< CustomScript > > customScriptsByTypes
Definition: ManageCustomScriptAction.java:84
OrganizationService organizationService
Definition: ManageCustomScriptAction.java:73

メンバ詳解

◆ appConfiguration

AppConfiguration org.gluu.oxtrust.action.ManageCustomScriptAction.appConfiguration
private

◆ applianceService

ApplianceService org.gluu.oxtrust.action.ManageCustomScriptAction.applianceService
private

◆ conversationService

ConversationService org.gluu.oxtrust.action.ManageCustomScriptAction.conversationService
private

◆ customScriptsByTypes

Map<CustomScriptType, List<CustomScript> > org.gluu.oxtrust.action.ManageCustomScriptAction.customScriptsByTypes
private

◆ customScriptService

AbstractCustomScriptService org.gluu.oxtrust.action.ManageCustomScriptAction.customScriptService
private

◆ facesMessages

FacesMessages org.gluu.oxtrust.action.ManageCustomScriptAction.facesMessages
private

◆ initialized

boolean org.gluu.oxtrust.action.ManageCustomScriptAction.initialized
private

◆ log

Logger org.gluu.oxtrust.action.ManageCustomScriptAction.log
private

◆ NAME_PATTERN

final Pattern org.gluu.oxtrust.action.ManageCustomScriptAction.NAME_PATTERN = Pattern.compile("^[a-zA-Z0-9_]+$")
staticprivate

◆ organizationService

OrganizationService org.gluu.oxtrust.action.ManageCustomScriptAction.organizationService
private

◆ serialVersionUID

final long org.gluu.oxtrust.action.ManageCustomScriptAction.serialVersionUID = -3823022039248381963L
staticprivate

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