PageRenderTime 56ms CodeModel.GetById 30ms app.highlight 23ms RepoModel.GetById 1ms 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
  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}