blob: c5132f40d9c7ec4716ceada8cbc0371161136c33 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.13) on Tue Feb 08 12:40:05 CST 2022 -->
<title>PropertyUserStore (Eclipse Jetty API Doc - v10.0.8)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2022-02-08">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="PropertyUserStore (Eclipse Jetty API Doc - v10.0.8)";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/PropertyUserStore.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.eclipse.jetty.security</a></div>
<h2 title="Class PropertyUserStore" class="title">Class PropertyUserStore</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li><a href="../util/component/AbstractLifeCycle.html" title="class in org.eclipse.jetty.util.component">org.eclipse.jetty.util.component.AbstractLifeCycle</a></li>
<li>
<ul class="inheritance">
<li><a href="UserStore.html" title="class in org.eclipse.jetty.security">org.eclipse.jetty.security.UserStore</a></li>
<li>
<ul class="inheritance">
<li>org.eclipse.jetty.security.PropertyUserStore</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code>java.util.EventListener</code>, <code><a href="../util/component/LifeCycle.html" title="interface in org.eclipse.jetty.util.component">LifeCycle</a></code>, <code><a href="../util/PathWatcher.Listener.html" title="interface in org.eclipse.jetty.util">PathWatcher.Listener</a></code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">PropertyUserStore</span>
extends <a href="UserStore.html" title="class in org.eclipse.jetty.security">UserStore</a>
implements <a href="../util/PathWatcher.Listener.html" title="interface in org.eclipse.jetty.util">PathWatcher.Listener</a></pre>
<div class="block"><p>This class monitors a property file of the format mentioned below
and notifies registered listeners of the changes to the the given file.</p>
<pre>
username: password [,rolename ...]
</pre>
<p>Passwords may be clear text, obfuscated or checksummed.
The class <a href="../util/security/Password.html" title="class in org.eclipse.jetty.util.security"><code>Password</code></a> should be used
to generate obfuscated passwords or password checksums.</p>
<p>If DIGEST Authentication is used, the password must be in a recoverable
format, either plain text or obfuscated.</p></div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="PropertyUserStore.UserListener.html" title="interface in org.eclipse.jetty.security">PropertyUserStore.UserListener</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="nested.classes.inherited.from.class.org.eclipse.jetty.security.UserStore">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from class&nbsp;org.eclipse.jetty.security.<a href="UserStore.html" title="class in org.eclipse.jetty.security">UserStore</a></h3>
<code><a href="UserStore.User.html" title="class in org.eclipse.jetty.security">UserStore.User</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="nested.classes.inherited.from.class.org.eclipse.jetty.util.component.AbstractLifeCycle">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from class&nbsp;org.eclipse.jetty.util.component.<a href="../util/component/AbstractLifeCycle.html" title="class in org.eclipse.jetty.util.component">AbstractLifeCycle</a></h3>
<code><a href="../util/component/AbstractLifeCycle.AbstractLifeCycleListener.html" title="class in org.eclipse.jetty.util.component">AbstractLifeCycle.AbstractLifeCycleListener</a>, <a href="../util/component/AbstractLifeCycle.StopException.html" title="class in org.eclipse.jetty.util.component">AbstractLifeCycle.StopException</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="nested.classes.inherited.from.class.org.eclipse.jetty.util.component.LifeCycle">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;org.eclipse.jetty.util.component.<a href="../util/component/LifeCycle.html" title="interface in org.eclipse.jetty.util.component">LifeCycle</a></h3>
<code><a href="../util/component/LifeCycle.Listener.html" title="interface in org.eclipse.jetty.util.component">LifeCycle.Listener</a></code></li>
</ul>
</li>
</ul>
</section>
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected java.nio.file.Path</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#_configPath">_configPath</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#_firstLoad">_firstLoad</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#_hotReload">_hotReload</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected java.util.List&lt;<a href="PropertyUserStore.UserListener.html" title="interface in org.eclipse.jetty.security">PropertyUserStore.UserListener</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#_listeners">_listeners</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="../util/PathWatcher.html" title="class in org.eclipse.jetty.util">PathWatcher</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#_pathWatcher">_pathWatcher</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.org.eclipse.jetty.security.UserStore">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.eclipse.jetty.security.<a href="UserStore.html" title="class in org.eclipse.jetty.security">UserStore</a></h3>
<code><a href="UserStore.html#_users">_users</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.org.eclipse.jetty.util.component.AbstractLifeCycle">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.eclipse.jetty.util.component.<a href="../util/component/AbstractLifeCycle.html" title="class in org.eclipse.jetty.util.component">AbstractLifeCycle</a></h3>
<code><a href="../util/component/AbstractLifeCycle.html#FAILED">FAILED</a>, <a href="../util/component/AbstractLifeCycle.html#STARTED">STARTED</a>, <a href="../util/component/AbstractLifeCycle.html#STARTING">STARTING</a>, <a href="../util/component/AbstractLifeCycle.html#STOPPED">STOPPED</a>, <a href="../util/component/AbstractLifeCycle.html#STOPPING">STOPPING</a></code></li>
</ul>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">PropertyUserStore</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#doStart()">doStart</a></span>()</code></th>
<td class="colLast">
<div class="block">Depending on the value of the refresh interval, this method will either start
up a scanner thread that will monitor the properties file for changes after
it has initially loaded it.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#doStop()">doStop</a></span>()</code></th>
<td class="colLast">
<div class="block">Method to override to stop the lifecycle</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getConfig()">getConfig</a></span>()</code></th>
<td class="colLast">
<div class="block">Get the config (as a string)</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>java.nio.file.Path</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getConfigPath()">getConfigPath</a></span>()</code></th>
<td class="colLast">
<div class="block">Get the Config <code>Path</code> reference.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="../util/resource/Resource.html" title="class in org.eclipse.jetty.util.resource">Resource</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getConfigResource()">getConfigResource</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isHotReload()">isHotReload</a></span>()</code></th>
<td class="colLast">
<div class="block">Is hot reload enabled on this user store</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#loadUsers()">loadUsers</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onPathWatchEvent(org.eclipse.jetty.util.PathWatcher.PathWatchEvent)">onPathWatchEvent</a></span>&#8203;(<a href="../util/PathWatcher.PathWatchEvent.html" title="class in org.eclipse.jetty.util">PathWatcher.PathWatchEvent</a>&nbsp;event)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#registerUserListener(org.eclipse.jetty.security.PropertyUserStore.UserListener)">registerUserListener</a></span>&#8203;(<a href="PropertyUserStore.UserListener.html" title="interface in org.eclipse.jetty.security">PropertyUserStore.UserListener</a>&nbsp;listener)</code></th>
<td class="colLast">
<div class="block">Registers a listener to be notified of the contents of the property file</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setConfig(java.lang.String)">setConfig</a></span>&#8203;(java.lang.String&nbsp;config)</code></th>
<td class="colLast">
<div class="block">Set the Config Path from a String reference to a file</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setConfigFile(java.io.File)">setConfigFile</a></span>&#8203;(java.io.File&nbsp;configFile)</code></th>
<td class="colLast">
<div class="block">Set the Config Path from a <code>File</code> reference</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setConfigPath(java.nio.file.Path)">setConfigPath</a></span>&#8203;(java.nio.file.Path&nbsp;configPath)</code></th>
<td class="colLast">
<div class="block">Set the Config Path</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setHotReload(boolean)">setHotReload</a></span>&#8203;(boolean&nbsp;enable)</code></th>
<td class="colLast">
<div class="block">Enable Hot Reload of the Property File</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.eclipse.jetty.security.UserStore">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.eclipse.jetty.security.<a href="UserStore.html" title="class in org.eclipse.jetty.security">UserStore</a></h3>
<code><a href="UserStore.html#addUser(java.lang.String,org.eclipse.jetty.util.security.Credential,java.lang.String%5B%5D)">addUser</a>, <a href="UserStore.html#getRolePrincipals(java.lang.String)">getRolePrincipals</a>, <a href="UserStore.html#getUserPrincipal(java.lang.String)">getUserPrincipal</a>, <a href="UserStore.html#removeUser(java.lang.String)">removeUser</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.eclipse.jetty.util.component.AbstractLifeCycle">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.eclipse.jetty.util.component.<a href="../util/component/AbstractLifeCycle.html" title="class in org.eclipse.jetty.util.component">AbstractLifeCycle</a></h3>
<code><a href="../util/component/AbstractLifeCycle.html#addEventListener(java.util.EventListener)">addEventListener</a>, <a href="../util/component/AbstractLifeCycle.html#getEventListeners()">getEventListeners</a>, <a href="../util/component/AbstractLifeCycle.html#getState()">getState</a>, <a href="../util/component/AbstractLifeCycle.html#getState(org.eclipse.jetty.util.component.LifeCycle)">getState</a>, <a href="../util/component/AbstractLifeCycle.html#isFailed()">isFailed</a>, <a href="../util/component/AbstractLifeCycle.html#isRunning()">isRunning</a>, <a href="../util/component/AbstractLifeCycle.html#isStarted()">isStarted</a>, <a href="../util/component/AbstractLifeCycle.html#isStarting()">isStarting</a>, <a href="../util/component/AbstractLifeCycle.html#isStopped()">isStopped</a>, <a href="../util/component/AbstractLifeCycle.html#isStopping()">isStopping</a>, <a href="../util/component/AbstractLifeCycle.html#removeEventListener(java.util.EventListener)">removeEventListener</a>, <a href="../util/component/AbstractLifeCycle.html#setEventListeners(java.util.Collection)">setEventListeners</a>, <a href="../util/component/AbstractLifeCycle.html#start()">start</a>, <a href="../util/component/AbstractLifeCycle.html#stop()">stop</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="_configPath">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>_configPath</h4>
<pre>protected&nbsp;java.nio.file.Path _configPath</pre>
</li>
</ul>
<a id="_pathWatcher">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>_pathWatcher</h4>
<pre>protected&nbsp;<a href="../util/PathWatcher.html" title="class in org.eclipse.jetty.util">PathWatcher</a> _pathWatcher</pre>
</li>
</ul>
<a id="_hotReload">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>_hotReload</h4>
<pre>protected&nbsp;boolean _hotReload</pre>
</li>
</ul>
<a id="_firstLoad">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>_firstLoad</h4>
<pre>protected&nbsp;boolean _firstLoad</pre>
</li>
</ul>
<a id="_listeners">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>_listeners</h4>
<pre>protected&nbsp;java.util.List&lt;<a href="PropertyUserStore.UserListener.html" title="interface in org.eclipse.jetty.security">PropertyUserStore.UserListener</a>&gt; _listeners</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>PropertyUserStore</h4>
<pre>public&nbsp;PropertyUserStore()</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="getConfig()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getConfig</h4>
<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;getConfig()</pre>
<div class="block">Get the config (as a string)</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the config path as a string</dd>
</dl>
</li>
</ul>
<a id="setConfig(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setConfig</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setConfig&#8203;(java.lang.String&nbsp;config)</pre>
<div class="block">Set the Config Path from a String reference to a file</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>config</code> - the config file</dd>
</dl>
</li>
</ul>
<a id="getConfigPath()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getConfigPath</h4>
<pre class="methodSignature">public&nbsp;java.nio.file.Path&nbsp;getConfigPath()</pre>
<div class="block">Get the Config <code>Path</code> reference.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the config path</dd>
</dl>
</li>
</ul>
<a id="setConfigFile(java.io.File)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setConfigFile</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setConfigFile&#8203;(java.io.File&nbsp;configFile)</pre>
<div class="block">Set the Config Path from a <code>File</code> reference</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>configFile</code> - the config file</dd>
</dl>
</li>
</ul>
<a id="setConfigPath(java.nio.file.Path)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setConfigPath</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setConfigPath&#8203;(java.nio.file.Path&nbsp;configPath)</pre>
<div class="block">Set the Config Path</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>configPath</code> - the config path</dd>
</dl>
</li>
</ul>
<a id="getConfigResource()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getConfigResource</h4>
<pre class="methodSignature">public&nbsp;<a href="../util/resource/Resource.html" title="class in org.eclipse.jetty.util.resource">Resource</a>&nbsp;getConfigResource()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the resource associated with the configured properties file, creating it if necessary</dd>
</dl>
</li>
</ul>
<a id="isHotReload()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isHotReload</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isHotReload()</pre>
<div class="block">Is hot reload enabled on this user store</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if hot reload was enabled before startup</dd>
</dl>
</li>
</ul>
<a id="setHotReload(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setHotReload</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setHotReload&#8203;(boolean&nbsp;enable)</pre>
<div class="block">Enable Hot Reload of the Property File</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>enable</code> - true to enable, false to disable</dd>
</dl>
</li>
</ul>
<a id="toString()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;toString()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="UserStore.html#toString()">toString</a></code>&nbsp;in class&nbsp;<code><a href="UserStore.html" title="class in org.eclipse.jetty.security">UserStore</a></code></dd>
</dl>
</li>
</ul>
<a id="loadUsers()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>loadUsers</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;loadUsers()
throws java.io.IOException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd>
</dl>
</li>
</ul>
<a id="doStart()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>doStart</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;doStart()
throws java.lang.Exception</pre>
<div class="block">Depending on the value of the refresh interval, this method will either start
up a scanner thread that will monitor the properties file for changes after
it has initially loaded it. Otherwise the users will be loaded and there will
be no active monitoring thread so changes will not be detected.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../util/component/AbstractLifeCycle.html#doStart()">doStart</a></code>&nbsp;in class&nbsp;<code><a href="../util/component/AbstractLifeCycle.html" title="class in org.eclipse.jetty.util.component">AbstractLifeCycle</a></code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../util/component/AbstractLifeCycle.StopException.html" title="class in org.eclipse.jetty.util.component">AbstractLifeCycle.StopException</a></code> - If thrown, the lifecycle will immediately be stopped.</dd>
<dd><code>java.lang.Exception</code> - If there was a problem starting. Will cause a transition to FAILED state</dd>
</dl>
</li>
</ul>
<a id="onPathWatchEvent(org.eclipse.jetty.util.PathWatcher.PathWatchEvent)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onPathWatchEvent</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;onPathWatchEvent&#8203;(<a href="../util/PathWatcher.PathWatchEvent.html" title="class in org.eclipse.jetty.util">PathWatcher.PathWatchEvent</a>&nbsp;event)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../util/PathWatcher.Listener.html#onPathWatchEvent(org.eclipse.jetty.util.PathWatcher.PathWatchEvent)">onPathWatchEvent</a></code>&nbsp;in interface&nbsp;<code><a href="../util/PathWatcher.Listener.html" title="interface in org.eclipse.jetty.util">PathWatcher.Listener</a></code></dd>
</dl>
</li>
</ul>
<a id="doStop()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>doStop</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;doStop()
throws java.lang.Exception</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../util/component/AbstractLifeCycle.html#doStop()">AbstractLifeCycle</a></code></span></div>
<div class="block">Method to override to stop the lifecycle</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../util/component/AbstractLifeCycle.html#doStop()">doStop</a></code>&nbsp;in class&nbsp;<code><a href="../util/component/AbstractLifeCycle.html" title="class in org.eclipse.jetty.util.component">AbstractLifeCycle</a></code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code> - If there was a problem stopping. Will cause a transition to FAILED state</dd>
</dl>
</li>
</ul>
<a id="registerUserListener(org.eclipse.jetty.security.PropertyUserStore.UserListener)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>registerUserListener</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;registerUserListener&#8203;(<a href="PropertyUserStore.UserListener.html" title="interface in org.eclipse.jetty.security">PropertyUserStore.UserListener</a>&nbsp;listener)</pre>
<div class="block">Registers a listener to be notified of the contents of the property file</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>listener</code> - the user listener</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/PropertyUserStore.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 1995&#x2013;2022 <a href="https://webtide.com">Webtide</a>. All rights reserved.</small></p>
</footer>
</body>
</html>