<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 27-Jul-2017 -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>cas-curator &#x2013; Setting Up the CAS-Curator</title>
    <style type="text/css" media="all">
      @import url("../css/maven-base.css");
      @import url("../css/maven-theme.css");
      @import url("../css/site.css");
    </style>
    <link rel="stylesheet" href="../css/print.css" type="text/css" media="print" />
      <meta name="author" content="David Woollard" />
    <meta name="Date-Revision-yyyymmdd" content="20170727" />
    <meta http-equiv="Content-Language" content="en" />
        
        </head>
  <body class="composite">
    <div id="banner">
                    <div id="bannerLeft">
                CAS Curation Interface
                </div>
                    <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="breadcrumbs">
            
                    
                <div class="xleft">
        <span id="publishDate">Last Published: 27-Jul-2017</span>
                  &nbsp;| <span id="projectVersion">Version: 1.2-SNAPSHOT</span>
                      </div>
            <div class="xright">                    <a href="../../oodt-site/" title="OODT">OODT</a>
              
                    
      </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="leftColumn">
      <div id="navcolumn">
             
                    
                                <h5>Project Documentation</h5>
                  <ul>
                                                                                                                                                                                                                                                                                            <li class="collapsed">
                          <a href="../project-info.html" title="Project Information">Project Information</a>
                  </li>
                                                                                                                          <li class="collapsed">
                          <a href="../project-reports.html" title="Project Reports">Project Reports</a>
                  </li>
          </ul>
                       <h5>Software Documentation</h5>
                  <ul>
                  <li class="none">
                          <a href="../user/basic.html" title="Basic User's Guide">Basic User's Guide</a>
            </li>
                  <li class="none">
            <strong>Advanced User's Guide</strong>
          </li>
                  <li class="none">
                          <a href="../api/index.html" title="REST API Guide">REST API Guide</a>
            </li>
          </ul>
                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
        <img class="poweredBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
      </a>
                   
                    
            </div>
    </div>
    <div id="bodyColumn">
      <div id="contentBox">
        <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor
license agreements.  See the NOTICE.txt 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. -->
  
    <div class="section">
<h2><a name="Introduction"></a>Introduction</h2>
    
    
<p>This document serves as an advanced user's guide for the CAS-Curator
      project. The goal of the document is to explore advanced topics such as 
      security setup and changing the look and feel of the CAS-Curator
      to match your project. For basic topics, such as checking out, 
      building, and installing the base version of the CAS-Curator, as well 
      as performing basic configuration tasks, please see our 
      <a href="../user/basic.html">Basic Guide.</a></p>
    
    
<p>The remainder of this guide is separated into the following 
      sections:</p>
      
    
<ul>
      
<li><a href="#section1">Security Setup</a></li>
      
<li><a href="#section2">Look and Feel</a></li>
    </ul>
    </div>
    
    
    <a name="section1"></a>
    
<div class="section">
<h2><a name="Security_Setup"></a>Security Setup</h2>
    
<p>Coming Soon...</p>
    </div>
    
    <a name="section2"></a>
    
<div class="section">
<h2><a name="Look_and_Feel"></a>Look and Feel</h2>
    
<p>Coming Soon...</p>
    </div>
   
  

      </div>
    </div>
    <div class="clear">
      <hr/>
    </div>
    <div id="footer">
      <div class="xright">
              Copyright &#169;                    1999&#x2013;2017
                        <a href="http://oodt.apache.org/">Apache OODT</a>.
            All rights reserved.      
                    
                  </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
  </body>
</html>
