 -----
 Archiva Security Configuration
 -----
 -----
 2011-09-16
 -----

~~ Licensed to the Apache Software Foundation (ASF) under one                      
~~ or more contributor license agreements.  See the NOTICE file                    
~~ distributed with this work for additional information                           
~~ regarding copyright ownership.  The ASF licenses this file                      
~~ to you under the Apache License, Version 2.0 (the                               
~~ "License"); you may not use this file except in compliance                      
~~ with the License.  You may obtain a copy of the License at                      
~~                                                                                 
~~   http://www.apache.org/licenses/LICENSE-2.0                                    
~~                                                                                 
~~ Unless required by applicable law or agreed to in writing,                      
~~ software distributed under the License is distributed on an                     
~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY                          
~~ KIND, either express or implied.  See the License for the                       
~~ specific language governing permissions and limitations                         
~~ under the License.

~~ NOTE: For help with the syntax of this file, see:
~~ http://maven.apache.org/guides/mini/guide-apt-format.html

Archiva Security Configuration

 Security properties and password rules are configured now in the Redback Runtime Configuration
 properties (see {{{./redback-runtime-configuration.html#Runtime_properties}Redback Runtime Configuration}}).

 The Redback Runtime Configuration properties are stored in <<<archiva.xml>>>.
 The former <<<security.properties>>> file, if it exists, is only used once for populating the
 Runtime Configuration settings. After that, this file will be ignored.

   []


~~TODO: Link to plexus-redback documentation when available

 These are the default properties. The file can be found in in Redback's svn repo:
 {{{http://svn.apache.org/repos/asf/archiva/redback/redback-core/trunk/redback-configuration/src/main/resources/org/apache/archiva/redback/config-defaults.properties}
 config-defaults.properties}}

%{snippet|ignoreDownloadError=true|url=https://raw.githubusercontent.com/apache/archiva-redback-core/master/redback-configuration/src/main/resources/org/apache/archiva/redback/config-defaults.properties}

  <<Note:>> If installed standalone, Archiva's list of configuration files is <itself> configurable, and
  can be found in:
  <<<apps/archiva/WEB-INF/applicationContext.xml>>>

  Values from sources

%{snippet|id=configuration-files-list|ignoreDownloadError=true|url=https://raw.githubusercontent.com/apache/archiva/master/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/applicationContext.xml}



