<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->

  <title>Archiva UI Rest API: RedbackRuntimeConfiguration</title>

  <!-- Mobile viewport optimized: j.mp/bplateviewport -->
  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <!-- Bootstrap core CSS -->
  <!-- <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css"> -->

  <!--custom css for these pages-->
  <link rel="stylesheet" href="css/enunciate.css">

  <link href="https://cdnjs.cloudflare.com/ajax/libs/prettify/r298/prettify.css" type="text/css">

  <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
  <!--[if lt IE 9]>
  <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
  <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
  <![endif]-->
</head>

<body class="home">
 <div class="container">
  <header>
 
   <div id="header" class="column first last span-20">
        <div id="site-name" class="column span-18 append-1 prepend-1 first last"><a href="index.html">Archiva UI Rest API: RedbackRuntimeConfiguration</a></div>
        <div id="primary" class="column span-18 append-1 prepend-1 first last">
          <ul class="navigation">
            <li id="nav-rest"><a href="resources.html">REST</a></li>
            <li id="nav-data"><a href="data.html">Data Model</a></li>
          </ul>
        </div>
        <div>
          <ul class="xbreadcrumbs" id="breadcrumbs">
<li>
 <a href="index.html" class="home">Home</a> &gt;

            </li>
<li>
 <a href="syntax_json.html">JSON</a> &gt;

            </li>
<li class="current">
 <a href="json_RedbackRuntimeConfiguration.html">RedbackRuntimeConfiguration</a>

            </li>
          </ul>
        </div>
      </div>
  <!--<nav class="navbar navbar-inverse navbar-fixed-top">
    <div class="container-fluid">
      <div class="navbar-header">
        <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar">
          <span class="sr-only">Toggle navigation</span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
        </button>
        <a class="navbar-brand" href="index.html">Archiva UI Rest API: RedbackRuntimeConfiguration</a>
      </div>
      <div id="navbar" class="navbar-collapse collapse">
        <ul class="nav navbar-nav navbar-right">
          <li><a href="resources.html">Resources</a></li>
          <li><a href="data.html">Data Types</a></li>
          <li><a href="downloads.html">Files and Libraries</a></li>
        </ul>
      </div>
    </div>
  </nav>-->
 </header>
  <div id="main" class="column first last span-20">
  
      <h1 class="page-header">RedbackRuntimeConfiguration <small>Data Type</small></h1>

      <p></p>

      <dl class="dl-horizontal">
        <dt>Available Since</dt>
        <dd>1.4-M4</dd>
      </dl>

      <table class="table">
        <caption>Properties</caption>
        <thead>
        <tr>
          <th>name</th>
          <th>data type</th>
          <th>constraints</th>
          <th>description</th>
        </tr>
        </thead>
        <tbody>
        <tr>
          <td>  userManagerImpls
</td>
          <td>  array of string

</td>
          <td>  &nbsp;

</td>
          <td>  
</td>
        </tr>
        <tr>
          <td>  ldapConfiguration
</td>
          <td>  <a href="json_LdapConfiguration.html">LdapConfiguration</a>

</td>
          <td>  &nbsp;

</td>
          <td>  
</td>
        </tr>
        <tr>
          <td>  migratedFromRedbackConfiguration
</td>
          <td>  boolean

</td>
          <td>  required

</td>
          <td>  
</td>
        </tr>
        <tr>
          <td>  configurationProperties
</td>
          <td>  map of string

</td>
          <td>  &nbsp;

</td>
          <td>  
</td>
        </tr>
        <tr>
          <td>  configurationPropertiesEntries
</td>
          <td>  array of <a href="json_PropertyEntry.html">PropertyEntry</a>

</td>
          <td>  &nbsp;

</td>
          <td>  
</td>
        </tr>
        <tr>
          <td>  useUsersCache
</td>
          <td>  boolean

</td>
          <td>  required

</td>
          <td>  
</td>
        </tr>
        <tr>
          <td>  usersCacheConfiguration
</td>
          <td>  <a href="json_CacheConfiguration.html">CacheConfiguration</a>

</td>
          <td>  &nbsp;

</td>
          <td>  
</td>
        </tr>
        <tr>
          <td>  rbacManagerImpls
</td>
          <td>  array of string

</td>
          <td>  &nbsp;

</td>
          <td>  
</td>
        </tr>
        <tr>
          <td>  ldapGroupMappings
</td>
          <td>  array of <a href="json_LdapGroupMapping.html">LdapGroupMapping</a>

</td>
          <td>  &nbsp;

</td>
          <td>  
</td>
        </tr>
        </tbody>
      </table>

      <h2>Example</h2>

      <pre class="prettyprint lang-js">{
  &quot;userManagerImpls&quot; : [ &quot;...&quot;, &quot;...&quot; ],
  &quot;ldapConfiguration&quot; : {
    &quot;hostName&quot; : &quot;...&quot;,
    &quot;port&quot; : 12345,
    &quot;ssl&quot; : true,
    &quot;baseDn&quot; : &quot;...&quot;,
    &quot;contextFactory&quot; : &quot;...&quot;,
    &quot;bindDn&quot; : &quot;...&quot;,
    &quot;password&quot; : &quot;...&quot;,
    &quot;authenticationMethod&quot; : &quot;...&quot;,
    &quot;extraProperties&quot; : {
      &quot;property1&quot; : &quot;...&quot;,
      &quot;property2&quot; : &quot;...&quot;
    },
    &quot;bindAuthenticatorEnabled&quot; : true,
    &quot;extraPropertiesEntries&quot; : [ {
      &quot;key&quot; : &quot;...&quot;,
      &quot;value&quot; : &quot;...&quot;
    }, {
      &quot;key&quot; : &quot;...&quot;,
      &quot;value&quot; : &quot;...&quot;
    } ],
    &quot;baseGroupsDn&quot; : &quot;...&quot;,
    &quot;writable&quot; : true,
    &quot;useRoleNameAsGroup&quot; : true
  },
  &quot;migratedFromRedbackConfiguration&quot; : true,
  &quot;configurationProperties&quot; : {
    &quot;property1&quot; : &quot;...&quot;,
    &quot;property2&quot; : &quot;...&quot;
  },
  &quot;configurationPropertiesEntries&quot; : [ {
    &quot;key&quot; : &quot;...&quot;,
    &quot;value&quot; : &quot;...&quot;
  }, {
    &quot;key&quot; : &quot;...&quot;,
    &quot;value&quot; : &quot;...&quot;
  } ],
  &quot;useUsersCache&quot; : true,
  &quot;usersCacheConfiguration&quot; : {
    &quot;timeToIdleSeconds&quot; : 12345,
    &quot;timeToLiveSeconds&quot; : 12345,
    &quot;maxElementsInMemory&quot; : 12345,
    &quot;maxElementsOnDisk&quot; : 12345
  },
  &quot;rbacManagerImpls&quot; : [ &quot;...&quot;, &quot;...&quot; ],
  &quot;ldapGroupMappings&quot; : [ {
    &quot;roleNames&quot; : [ &quot;...&quot;, &quot;...&quot; ],
    &quot;group&quot; : &quot;...&quot;
  }, {
    &quot;roleNames&quot; : [ &quot;...&quot;, &quot;...&quot; ],
    &quot;group&quot; : &quot;...&quot;
  } ]
}</pre>
        
        <footer>
          <div class="footer">
            Generated by <a href="http://enunciate.webcohesion.com">Enunciate</a>.
          </div>
        </footer>

      </div>
    
  </div>


  <!-- JavaScript placed at the end of the document so the pages load faster. -->
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>

  
  <!-- prettify code blocks. see http://code.google.com/p/google-code-prettify/ -->
  <script src="https://cdnjs.cloudflare.com/ajax/libs/prettify/r298/run_prettify.js" type="text/javascript"></script>
  

</body>
</html>