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