<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ 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.
  -->

<project name="Apache Redback">
  <bannerLeft>
    <name>Redback</name>
    <href>http://archiva.apache.org/redback</href>
    <src>images/redback.jpg</src>
  </bannerLeft>
  <googleAnalyticsAccountId>UA-140879-5</googleAnalyticsAccountId>
  <custom>
    <fluidoSkin>
      <topBarEnabled>true</topBarEnabled>
      <sideBarEnabled>false</sideBarEnabled>
      <skipGenerationDate>true</skipGenerationDate>
      <googleSearch>
        <sitesearch>http://archiva.apache.org/redback</sitesearch>
      </googleSearch>
      <twitter>
        <user>archiva</user>
        <showUser>true</showUser>
        <showFollowers>false</showFollowers>
      </twitter>
      <ohloh>
        <projectId>8659</projectId>
        <widget>stats</widget>
      </ohloh>
    </fluidoSkin>

  </custom>

  <publishDate format="yyyy-MM-dd" position="left" />
 
  <body>

    <menu name="Overview">
      <item name="Introduction" href="index.html"/>
      <item name="Authentication" href="authentication.html"/>
      <item name="Authorization" href="authorization.html"/>
      <item name="User Management" href="user-management.html"/>
      <item name="Key Stores" href="key-store.html"/>
      <item name="Configuration" href="configuration.html"/>
      <item name="Role Based Access Control" href="rbac/introduction.html">
        <item name="Role Management" href="rbac/role-management.html"/>
      </item>
      <item name="Ldap" href="integration/ldap.html"/>
      <item name="Rest" href="integration/rest.html"/>
    </menu>

    <menu name="Development">
      <item name="Extending Redback Authentication" href="development/extending-authn.html"/>
      <item name="Redback Components" href="http://archiva.apache.org/redback/components"/>
      <item name="Redback Core" href="http://archiva.apache.org/redback/core"/>
    </menu>
    
    <menu ref="reports" />

    <menu name="ASF" inherit="bottom">
      <item name="How Apache Works" href="http://www.apache.org/foundation/how-it-works.html"/>
      <item name="Foundation" href="http://www.apache.org/foundation/"/>
      <item name="Sponsoring Apache" href="http://www.apache.org/foundation/sponsorship.html"/>
      <item name="Thanks" href="http://www.apache.org/foundation/thanks.html"/>
    </menu>

    <footer>
      <div class="row span12">Apache Redback, Redback, Apache, the Apache feather logo, and the Apache Archiva project logos are trademarks of The Apache Software Foundation.</div>
      <div class="row span12">
        <a href="${project.url}privacy-policy.html">Privacy Policy</a>
      </div>
    </footer>

  </body>
</project>
