PageRenderTime 42ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/jboss-as-7.1.1.Final/web/src/main/java/org/jboss/as/web/WebSSLDefinition.java

#
Java | 181 lines | 154 code | 22 blank | 5 comment | 2 complexity | 4cad8a8d28f7428d087dae1e105c723c MD5 | raw file
Possible License(s): LGPL-2.1, Apache-2.0
  1. package org.jboss.as.web;
  2. import org.jboss.as.controller.AttributeDefinition;
  3. import org.jboss.as.controller.PathElement;
  4. import org.jboss.as.controller.ReloadRequiredRemoveStepHandler;
  5. import org.jboss.as.controller.ReloadRequiredWriteAttributeHandler;
  6. import org.jboss.as.controller.SimpleAttributeDefinition;
  7. import org.jboss.as.controller.SimpleAttributeDefinitionBuilder;
  8. import org.jboss.as.controller.alias.AbstractAliasedResourceDefinition;
  9. import org.jboss.as.controller.operations.global.WriteAttributeHandlers;
  10. import org.jboss.as.controller.operations.validation.IntRangeValidator;
  11. import org.jboss.as.controller.operations.validation.StringLengthValidator;
  12. import org.jboss.as.controller.registry.AttributeAccess;
  13. import org.jboss.as.controller.registry.ManagementResourceRegistration;
  14. import org.jboss.dmr.ModelType;
  15. /**
  16. * @author Tomaz Cerar
  17. * @created 23.2.12 12:26
  18. */
  19. public class WebSSLDefinition extends AbstractAliasedResourceDefinition {
  20. protected static final WebSSLDefinition INSTANCE = new WebSSLDefinition();
  21. protected static final SimpleAttributeDefinition NAME =
  22. new SimpleAttributeDefinitionBuilder(Constants.NAME, ModelType.STRING, true)
  23. .setXmlName(Constants.NAME)
  24. .setAllowNull(true)
  25. .build();
  26. protected static final SimpleAttributeDefinition KEY_ALIAS =
  27. new SimpleAttributeDefinitionBuilder(Constants.KEY_ALIAS, ModelType.STRING, true)
  28. .setXmlName(Constants.KEY_ALIAS)
  29. .setAllowNull(false)
  30. .setValidator(new StringLengthValidator(1, true))
  31. .setFlags(AttributeAccess.Flag.RESTART_ALL_SERVICES)
  32. .build();
  33. protected static final SimpleAttributeDefinition PASSWORD =
  34. new SimpleAttributeDefinitionBuilder(Constants.PASSWORD, ModelType.STRING, true)
  35. .setXmlName(Constants.PASSWORD)
  36. .setValidator(new StringLengthValidator(1, true, true))
  37. .setFlags(AttributeAccess.Flag.RESTART_ALL_SERVICES)
  38. .setAllowExpression(true)
  39. .build();
  40. protected static final SimpleAttributeDefinition CERTIFICATE_KEY_FILE =
  41. new SimpleAttributeDefinitionBuilder(Constants.CERTIFICATE_KEY_FILE, ModelType.STRING, true)
  42. .setXmlName(Constants.CERTIFICATE_KEY_FILE)
  43. .setValidator(new StringLengthValidator(1, true, true))
  44. .setFlags(AttributeAccess.Flag.RESTART_ALL_SERVICES)
  45. .setAllowExpression(true)
  46. .build();
  47. protected static final SimpleAttributeDefinition CIPHER_SUITE =
  48. new SimpleAttributeDefinitionBuilder(Constants.CIPHER_SUITE, ModelType.STRING, true)
  49. .setXmlName(Constants.CIPHER_SUITE)
  50. .setValidator(new StringLengthValidator(1, true))
  51. .setFlags(AttributeAccess.Flag.RESTART_ALL_SERVICES)
  52. .build();
  53. protected static final SimpleAttributeDefinition PROTOCOL =
  54. new SimpleAttributeDefinitionBuilder(Constants.PROTOCOL, ModelType.STRING, true)
  55. .setXmlName(Constants.PROTOCOL)
  56. .setValidator(new StringLengthValidator(1, true))
  57. .setFlags(AttributeAccess.Flag.RESTART_ALL_SERVICES)
  58. .build();
  59. protected static final SimpleAttributeDefinition VERIFY_CLIENT =
  60. new SimpleAttributeDefinitionBuilder(Constants.VERIFY_CLIENT, ModelType.STRING, true)
  61. .setXmlName(Constants.VERIFY_CLIENT)
  62. .setValidator(new StringLengthValidator(1, true))
  63. .setFlags(AttributeAccess.Flag.RESTART_ALL_SERVICES)
  64. .build();
  65. protected static final SimpleAttributeDefinition VERIFY_DEPTH =
  66. new SimpleAttributeDefinitionBuilder(Constants.VERIFY_DEPTH, ModelType.INT, true)
  67. .setXmlName(Constants.VERIFY_DEPTH)
  68. .setValidator(new IntRangeValidator(0, true))
  69. .setFlags(AttributeAccess.Flag.RESTART_ALL_SERVICES)
  70. .build();
  71. protected static final SimpleAttributeDefinition CERTIFICATE_FILE =
  72. new SimpleAttributeDefinitionBuilder(Constants.CERTIFICATE_FILE, ModelType.STRING, true)
  73. .setXmlName(Constants.CERTIFICATE_FILE)
  74. .setValidator(new StringLengthValidator(1, true, true))
  75. .setFlags(AttributeAccess.Flag.RESTART_ALL_SERVICES)
  76. .setAllowExpression(true)
  77. .build();
  78. protected static final SimpleAttributeDefinition CA_CERTIFICATE_FILE =
  79. new SimpleAttributeDefinitionBuilder(Constants.CA_CERTIFICATE_FILE, ModelType.STRING, true)
  80. .setXmlName(Constants.CA_CERTIFICATE_FILE)
  81. .setValidator(new StringLengthValidator(1, true, true))
  82. .setFlags(AttributeAccess.Flag.RESTART_ALL_SERVICES)
  83. .setAllowExpression(true)
  84. .build();
  85. protected static final SimpleAttributeDefinition CA_CERTIFICATE_PASSWORD =
  86. new SimpleAttributeDefinitionBuilder(Constants.CA_CERTIFICATE_PASSWORD, ModelType.STRING, true)
  87. .setXmlName(Constants.CA_CERTIFICATE_PASSWORD)
  88. .setValidator(new StringLengthValidator(1, true, true))
  89. .setFlags(AttributeAccess.Flag.RESTART_ALL_SERVICES)
  90. .setAllowExpression(true)
  91. .build();
  92. protected static final SimpleAttributeDefinition CA_REVOCATION_URL =
  93. new SimpleAttributeDefinitionBuilder(Constants.CA_REVOCATION_URL, ModelType.STRING, true)
  94. .setXmlName(Constants.CA_REVOCATION_URL)
  95. .setValidator(new StringLengthValidator(1, true))
  96. .setFlags(AttributeAccess.Flag.RESTART_ALL_SERVICES)
  97. .build();
  98. protected static final SimpleAttributeDefinition TRUSTSTORE_TYPE =
  99. new SimpleAttributeDefinitionBuilder(Constants.TRUSTSTORE_TYPE, ModelType.STRING, true)
  100. .setXmlName(Constants.TRUSTSTORE_TYPE)
  101. .setValidator(new StringLengthValidator(1, true))
  102. .setFlags(AttributeAccess.Flag.RESTART_ALL_SERVICES)
  103. .build();
  104. protected static final SimpleAttributeDefinition KEYSTORE_TYPE =
  105. new SimpleAttributeDefinitionBuilder(Constants.KEYSTORE_TYPE, ModelType.STRING, true)
  106. .setXmlName(Constants.KEYSTORE_TYPE)
  107. .setValidator(new StringLengthValidator(1, true))
  108. .setFlags(AttributeAccess.Flag.RESTART_ALL_SERVICES)
  109. .build();
  110. protected static final SimpleAttributeDefinition SESSION_CACHE_SIZE =
  111. new SimpleAttributeDefinitionBuilder(Constants.SESSION_CACHE_SIZE, ModelType.INT, true)
  112. .setXmlName(Constants.SESSION_CACHE_SIZE)
  113. .setValidator(new IntRangeValidator(1, true))
  114. .setFlags(AttributeAccess.Flag.RESTART_ALL_SERVICES)
  115. .build();
  116. protected static final SimpleAttributeDefinition SESSION_TIMEOUT =
  117. new SimpleAttributeDefinitionBuilder(Constants.SESSION_TIMEOUT, ModelType.INT, true)
  118. .setXmlName(Constants.SESSION_TIMEOUT)
  119. .setValidator(new IntRangeValidator(1, true))
  120. .setFlags(AttributeAccess.Flag.RESTART_ALL_SERVICES)
  121. .build();
  122. protected static SimpleAttributeDefinition[] SSL_ATTRIBUTES = {
  123. // IMPORTANT -- keep these in xsd order as this order controls marshalling
  124. KEY_ALIAS,
  125. PASSWORD,
  126. CERTIFICATE_KEY_FILE,
  127. CIPHER_SUITE,
  128. PROTOCOL,
  129. VERIFY_CLIENT,
  130. VERIFY_DEPTH,
  131. CERTIFICATE_FILE,
  132. CA_CERTIFICATE_FILE,
  133. CA_REVOCATION_URL,
  134. CA_CERTIFICATE_PASSWORD,
  135. KEYSTORE_TYPE,
  136. TRUSTSTORE_TYPE,
  137. SESSION_CACHE_SIZE,
  138. SESSION_TIMEOUT
  139. };
  140. private WebSSLDefinition() {
  141. super(WebExtension.SSL_PATH,
  142. WebExtension.getResourceDescriptionResolver("connector.ssl"),
  143. WebSSLAdd.INSTANCE,
  144. new ReloadRequiredRemoveStepHandler());
  145. }
  146. @Override
  147. public void registerAttributes(ManagementResourceRegistration ssl) {
  148. ssl.registerReadWriteAttribute(NAME, null, new WriteAttributeHandlers.AttributeDefinitionValidatingHandler(NAME));
  149. for (AttributeDefinition attr : SSL_ATTRIBUTES) {
  150. ssl.registerReadWriteAttribute(attr, null, new ReloadRequiredWriteAttributeHandler(attr));
  151. }
  152. }
  153. public void registerAliasAttributes(ManagementResourceRegistration resourceRegistration, PathElement alias) {
  154. resourceRegistration.registerReadOnlyAttribute(NAME, aliasHandler);
  155. for (AttributeDefinition attr : SSL_ATTRIBUTES) {
  156. resourceRegistration.registerReadWriteAttribute(attr, aliasHandler, aliasHandler);
  157. }
  158. }
  159. }