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}