001package org.apache.archiva.redback.configuration;
002/*
003 * Licensed to the Apache Software Foundation (ASF) under one
004 * or more contributor license agreements.  See the NOTICE file
005 * distributed with this work for additional information
006 * regarding copyright ownership.  The ASF licenses this file
007 * to you under the Apache License, Version 2.0 (the
008 * "License"); you may not use this file except in compliance
009 * with the License.  You may obtain a copy of the License at
010 *
011 * http://www.apache.org/licenses/LICENSE-2.0
012 *
013 * Unless required by applicable law or agreed to in writing,
014 * software distributed under the License is distributed on an
015 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
016 * KIND, either express or implied.  See the License for the
017 * specific language governing permissions and limitations
018 * under the License.
019 */
020
021/**
022 * @author Olivier Lamy
023 * @since 2.1
024 */
025public interface UserConfigurationKeys
026{
027    String USER_MANAGER_IMPL = "user.manager.impl";
028
029    String RBAC_MANAGER_IMPL = "rbac.manager.impl";
030
031    String DEFAULT_ADMIN = "redback.default.admin";
032
033    String DEFAULT_GUEST = "redback.default.guest";
034
035    String DEFAULT_GUEST_ROLE_ID = "redback.default.role.guest.id";
036
037    String EMAIL_FROM_ADDRESS = "email.from.address";
038
039    String EMAIL_FROM_NAME = "email.from.name";
040
041    String EMAIL_FEEDBACK_PATH = "email.feedback.path";
042
043    String APPLICATION_TIMESTAMP = "application.timestamp";
044
045    String PASSWORD_ENCODER = "security.policy.password.encoder";
046
047    String EMAIL_VALIDATION_SUBJECT = "email.validation.subject";
048
049    String REMEMBER_ME_PATH = "security.rememberme.path";
050
051    String REMEMBER_ME_DOMAIN = "security.rememberme.domain";
052
053    String REMEMBER_ME_ENABLED = "security.rememberme.enabled";
054
055    String REMEMBER_ME_TIMEOUT = "security.rememberme.timeout";
056
057    String REMEMBER_ME_SECURE = "security.rememberme.secure";
058
059    String SIGNON_DOMAIN = "security.signon.domain";
060
061    String SIGNON_PATH = "security.signon.path";
062
063    String SIGNON_TIMEOUT = "security.signon.timeout";
064
065    String LDAP_HOSTNAME = "ldap.config.hostname";
066
067    String LDAP_PORT = "ldap.config.port";
068
069    String LDAP_SSL = "ldap.config.ssl";
070
071    String LDAP_CONTEX_FACTORY = "ldap.config.context.factory";
072
073    String LDAP_PASSWORD = "ldap.config.password";
074
075    String LDAP_AUTHENTICATION_METHOD = "ldap.config.authentication.method";
076
077    String LDAP_DN_ATTRIBUTE = "ldap.config.dn";
078
079    String LDAP_BASEDN = "ldap.config.base.dn";
080
081    String LDAP_BINDDN = "ldap.config.bind.dn";
082
083    String LDAP_GROUPS_CLASS = "ldap.config.groups.class";
084
085    String LDAP_GROUPS_BASEDN = "ldap.config.groups.base.dn";
086
087    String LDAP_GROUPS_FILTER = "ldap.config.groups.filter";
088
089    String LDAP_GROUPS_MEMBER = "ldap.config.groups.member";
090
091    String LDAP_GROUPS_ROLE_START_KEY = "ldap.config.groups.role.";
092
093    String LDAP_GROUPS_USE_ROLENAME = "ldap.config.groups.use.rolename";
094
095    String LDAP_GROUPS_USE_DN_AS_MEMBER_VALUE = "ldap.config.groups.useDnAsMemberValue";
096
097    String LDAP_WRITABLE = "ldap.config.writable";
098
099    String LDAP_USER_ID_ATTRIBUTE = "ldap.config.user.attribute";
100
101    String LDAP_GROUP_NAME_ATTRIBUTE = "ldap.config.groups.name.attribute";
102
103    String LDAP_GROUP_DESCRIPTION_ATTRIBUTE = "ldap.config.groups.description.attribute";
104
105    String APPLICATION_URL = "application.url";
106
107    String EMAIL_URL_PATH = "email.url.path";
108
109    String LDAP_MAPPER_USER_ATTRIBUTE_EMAIL = "ldap.config.mapper.attribute.email";
110
111    String LDAP_MAPPER_USER_ATTRIBUTE_FULLNAME = "ldap.config.mapper.attribute.fullname";
112
113    String LDAP_MAPPER_USER_ATTRIBUTE_PASSWORD = "ldap.config.mapper.attribute.password";
114
115    String LDAP_MAPPER_USER_ATTRIBUTE_ID = "ldap.config.mapper.attribute.user.id";
116
117    String LDAP_MAPPER_USER_ATTRIBUTE_OBJECT_CLASS = "ldap.config.mapper.attribute.user.object.class";
118
119    String LDAP_MAPPER_USER_ATTRIBUTE_FILTER = "ldap.config.mapper.attribute.user.filter";
120
121    String LDAP_MAX_RESULT_COUNT = "ldap.config.max.result.count";
122
123    String LDAP_BIND_AUTHENTICATOR_ENABLED = "ldap.bind.authenticator.enabled";
124
125    String LDAP_BIND_AUTHENTICATOR_ALLOW_EMPTY_PASSWORDS = "ldap.bind.authenticator.allowEmptyPasswords";
126
127    String PASSWORD_RETENTION_COUNT = "security.policy.password.previous.count";
128
129    String LOGIN_ATTEMPT_COUNT = "security.policy.allowed.login.attempt";
130
131    String PASSWORD_EXPIRATION_ENABLED = "security.policy.password.expiration.enabled";
132
133    String PASSWORD_EXPIRATION = "security.policy.password.expiration.days";
134
135    String UNLOCKABLE_ACCOUNTS = "security.policy.unlockable.accounts";
136
137    String EMAIL_VALIDATION_TIMEOUT = "email.validation.timeout";
138
139    String EMAIL_VALIDATION_REQUIRED = "email.validation.required";
140
141    String ALPHA_COUNT_MIN = "security.policy.password.rule.alphacount.minimum";
142
143    String ALPHA_COUNT_VIOLATION = "user.password.violation.alpha";
144
145    String CHARACTER_LENGTH_MIN = "security.policy.password.rule.characterlength.minimum";
146
147    String CHARACTER_LENGTH_MAX = "security.policy.password.rule.characterlength.maximum";
148
149    String CHARACTER_LENGTH_MISCONFIGURED_VIOLATION = "user.password.violation.length.misconfigured";
150
151    String CHARACTER_LENGTH_VIOLATION = "user.password.violation.length";
152
153    String MINIMUM = "security.policy.password.rule.numericalcount.minimum";
154
155    String NUMERICAL_COUNT_VIOLATION = "user.password.violation.numeric";
156
157    String POLICY_PASSWORD_RULE_ALPHANUMERIC_ENABLED = "security.policy.password.rule.alphanumeric.enabled";
158
159    String POLICY_PASSWORD_RULE_ALPHACOUNT_ENABLED = "security.policy.password.rule.alphacount.enabled";
160
161    String POLICY_PASSWORD_RULE_CHARACTERLENGTH_ENABLED = "security.policy.password.rule.characterlength.enabled";
162
163    String POLICY_PASSWORD_RULE_MUSTHAVE_ENABLED = "security.policy.password.rule.musthave.enabled";
164
165    String POLICY_PASSWORD_RULE_NUMERICALCOUNT_ENABLED = "security.policy.password.rule.numericalcount.enabled";
166
167    String POLICY_PASSWORD_RULE_REUSE_ENABLED = "security.policy.password.rule.reuse.enabled";
168
169    String POLICY_PASSWORD_RULE_NOWHITTESPACE_ENABLED = "security.policy.password.rule.nowhitespace.enabled";
170
171    String REST_BASE_URL = "rest.baseUrl";
172
173    String REST_CSRF_ABSENTORIGIN_DENY = "rest.csrffilter.absentorigin.deny";
174
175    String REST_CSRF_ENABLED = "rest.csrffilter.enabled";
176
177    String REST_CSRF_DISABLE_TOKEN_VALIDATION = "rest.csrffilter.disableTokenValidation";
178
179    /**
180     * Encoding used for reading mail templates / Default is UTF-8
181     */
182    String MAIL_TEMPLATE_ENCODING = "mail.template.encoding";
183
184    /**
185     * The locale to use for sending mails and finding mail templates
186     */
187    String MAIL_DEFAULT_LOCALE = "mail.locale";
188
189    /**
190     * The property for defining, where the key for JWT encryption / decryption is stored.
191     * Currently only memory and plainfile are supported
192     * {@value}
193     */
194    String AUTHENTICATION_JWT_KEYSTORETYPE = "authentication.jwt.keystoreType";
195    /**
196     * The property value for memory keystore: {@value}
197     */
198    String AUTHENTICATION_JWT_KEYSTORETYPE_MEMORY = "memory";
199    /**
200     * The property value for plain file keystore: {@value}
201     */
202    String AUTHENTICATION_JWT_KEYSTORETYPE_PLAINFILE = "plainfile";
203    /**
204     * The property for defining the used signature algorithm for JWT signing: {@value}
205     */
206    String AUTHENTICATION_JWT_SIGALG = "authentication.jwt.signatureAlgorithm";
207    /**
208     * The property for defining the maximum number of keys to keep in memory for verification: {@value}
209     */
210    String AUTHENTICATION_JWT_MAX_KEYS = "authentication.jwt.maxInMemoryKeys";
211
212    /**
213     * HMAC using SHA-256
214     */
215    String AUTHENTICATION_JWT_SIGALG_HS256 = "HS256";
216    /**
217     * HMAC using SHA-384
218     */
219    String AUTHENTICATION_JWT_SIGALG_HS384 = "HS384";
220    /**
221     * HMAC using SHA-512
222     */
223    String AUTHENTICATION_JWT_SIGALG_HS512 = "HS512";
224    /**
225     * ECDSA using P-256 and SHA-256
226     */
227    String AUTHENTICATION_JWT_SIGALG_ES256 = "ES256";
228    /**
229     * ECDSA using P-384 and SHA-384
230     */
231    String AUTHENTICATION_JWT_SIGALG_ES384 = "ES384";
232    /**
233     * ECDSA using P-521 and SHA-512
234     */
235    String AUTHENTICATION_JWT_SIGALG_ES512 = "ES512";
236    /**
237     * RSASSA-PKCS-v1_5 using SHA-256
238     */
239    String AUTHENTICATION_JWT_SIGALG_RS256 = "RS256";
240    /**
241     * RSASSA-PKCS-v1_5 using SHA-384
242     */
243    String AUTHENTICATION_JWT_SIGALG_RS384 = "RS384";
244    /**
245     * RSASSA-PKCS-v1_5 using SHA-512
246     */
247    String AUTHENTICATION_JWT_SIGALG_RS512 = "RS512";
248    /**
249     * RSASSA-PSS using SHA-256 and MGF1 with SHA-256
250     */
251    String AUTHENTICATION_JWT_SIGALG_PS256 = "PS256";
252    /**
253     * RSASSA-PSS using SHA-384 and MGF1 with SHA-384
254     */
255    String AUTHENTICATION_JWT_SIGALG_PS384 = "PS384";
256    /**
257     * RSASSA-PSS using SHA-512 and MGF1 with SHA-512
258     */
259    String AUTHENTICATION_JWT_SIGALG_PS512 = "PS512";
260
261
262    /**
263     * The property for the path to the file where the JWT key is stored: {@value}
264     */
265    String AUTHENTICATION_JWT_KEYFILE = "authentication.jwt.keyfile";
266
267    /**
268     * The property for lifetime in ms of the generated tokens: {@value}
269     */
270    String AUTHENTICATION_JWT_LIFETIME_MS = "authentication.jwt.lifetimeMs";
271
272    /**
273     * The property for lifetime in ms of the generated refresh tokens: {@value}
274     */
275    String AUTHENTICATION_JWT_REFRESH_LIFETIME_MS = "authentication.jwt.refreshLifetimeMs";
276
277}