<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>PasswordEncoder (Apache Archiva Redback 3.0.0-SNAPSHOT API)</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="PasswordEncoder (Apache Archiva Redback 3.0.0-SNAPSHOT API)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/PasswordEncoder.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">
<li><a href="../../../../../org/apache/archiva/redback/policy/MustChangePasswordException.html" title="class in org.apache.archiva.redback.policy"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/archiva/redback/policy/PasswordEncodingException.html" title="class in org.apache.archiva.redback.policy"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/archiva/redback/policy/PasswordEncoder.html" target="_top">Frames</a></li>
<li><a href="PasswordEncoder.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></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>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.archiva.redback.policy</div>
<h2 title="Interface PasswordEncoder" class="title">Interface PasswordEncoder</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../../../org/apache/archiva/redback/policy/encoders/AbstractJAASPasswordEncoder.html" title="class in org.apache.archiva.redback.policy.encoders">AbstractJAASPasswordEncoder</a>, <a href="../../../../../org/apache/archiva/redback/policy/encoders/PlainTextPasswordEncoder.html" title="class in org.apache.archiva.redback.policy.encoders">PlainTextPasswordEncoder</a>, <a href="../../../../../org/apache/archiva/redback/policy/encoders/SHA1PasswordEncoder.html" title="class in org.apache.archiva.redback.policy.encoders">SHA1PasswordEncoder</a>, <a href="../../../../../org/apache/archiva/redback/policy/encoders/SHA256PasswordEncoder.html" title="class in org.apache.archiva.redback.policy.encoders">SHA256PasswordEncoder</a></dd>
</dl>
<hr>
<br>
<pre>public interface <a href="../../../../../src-html/org/apache/archiva/redback/policy/PasswordEncoder.html#line.30">PasswordEncoder</a></pre>
<div class="block"><p>
 Interface for performing authentication operations on a password.
 </p>
 
 <p>Javadoc about encoding and salts copied from Acegi Security.</p></div>
<dl>
<dt><span class="simpleTagLabel">Author:</span></dt>
<dd>colin sampaleanu, <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<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="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/archiva/redback/policy/PasswordEncoder.html#encodePassword-java.lang.String-">encodePassword</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;rawPass)</code>
<div class="block">
 Encodes the specified raw password with an implementation specific algorithm, using the system wide salt.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/archiva/redback/policy/PasswordEncoder.html#encodePassword-java.lang.String-java.lang.Object-">encodePassword</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;rawPass,
              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;salt)</code>
<div class="block">
 Encodes the specified raw password with an implementation specific algorithm, using user specific salt.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/archiva/redback/policy/PasswordEncoder.html#isPasswordValid-java.lang.String-java.lang.String-">isPasswordValid</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;encPass,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;rawPass)</code>
<div class="block">
 Validates a specified "raw" password against an encoded password, using the system wide salt.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/archiva/redback/policy/PasswordEncoder.html#isPasswordValid-java.lang.String-java.lang.String-java.lang.Object-">isPasswordValid</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;encPass,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;rawPass,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;salt)</code>
<div class="block">
 Validates a specified "raw" password against an encoded password, using a user specific salt.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/archiva/redback/policy/PasswordEncoder.html#setSystemSalt-java.lang.Object-">setSystemSalt</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;salt)</code>
<div class="block">
 Sets the system wide salt to use in the encoder.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="setSystemSalt-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSystemSalt</h4>
<pre>void&nbsp;<a href="../../../../../src-html/org/apache/archiva/redback/policy/PasswordEncoder.html#line.49">setSystemSalt</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;salt)</pre>
<div class="block"><p>
 Sets the system wide salt to use in the encoder.
 </p>
 
 <p>
 The specified salt will potentially be used by the implementation to "salt" the initial value before
 encoding. A salt is usually a user-specific value which is added to the password before the digest is computed.
 This means that computation of digests for common dictionary words will be different than those in the backend
 store, because the dictionary word digests will not reflect the addition of the salt. If a per-user salt is
 used (rather than a system-wide salt), it also means users with the same password will have different digest
 encoded passwords in the backend store.
 </p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>salt</code> - the salt to use as a default for the encoder.</dd>
</dl>
</li>
</ul>
<a name="encodePassword-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>encodePassword</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/archiva/redback/policy/PasswordEncoder.html#line.66">encodePassword</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;rawPass)</pre>
<div class="block"><p>
 Encodes the specified raw password with an implementation specific algorithm, using the system wide salt.
 </p>
 
 <p>
 This will generally be a one-way message digest such as MD5 or SHA, but may also be a plaintext
 variant which does no encoding at all, but rather returns the same password it was fed. The latter is useful to
 plug in when the original password must be stored as-is.
 </p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rawPass</code> - the password to encode</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>encoded password</dd>
</dl>
</li>
</ul>
<a name="encodePassword-java.lang.String-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>encodePassword</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/archiva/redback/policy/PasswordEncoder.html#line.93">encodePassword</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;rawPass,
                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;salt)</pre>
<div class="block"><p>
 Encodes the specified raw password with an implementation specific algorithm, using user specific salt.
 </p>
 
 <p>
 This will generally be a one-way message digest such as MD5 or SHA, but may also be a plaintext
 variant which does no encoding at all, but rather returns the same password it was fed. The latter is useful to
 plug in when the original password must be stored as-is.
 </p>
 
 <p>
 The specified salt will potentially be used by the implementation to "salt" the initial value before
 encoding. A salt is usually a user-specific value which is added to the password before the digest is computed.
 This means that computation of digests for common dictionary words will be different than those in the backend
 store, because the dictionary word digests will not reflect the addition of the salt. If a per-user salt is
 used (rather than a system-wide salt), it also means users with the same password will have different digest
 encoded passwords in the backend store.
 </p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rawPass</code> - the password to encode</dd>
<dd><code>salt</code> - optionally used by the implementation to "salt" the raw password before encoding. 
             A <code>null</code> value is legal.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>encoded password</dd>
</dl>
</li>
</ul>
<a name="isPasswordValid-java.lang.String-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isPasswordValid</h4>
<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/archiva/redback/policy/PasswordEncoder.html#line.116">isPasswordValid</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;encPass,
                        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;rawPass)</pre>
<div class="block"><p>
 Validates a specified "raw" password against an encoded password, using the system wide salt.
 </p>
 
 <p>
 The encoded password should have previously been generated by <a href="../../../../../org/apache/archiva/redback/policy/PasswordEncoder.html#encodePassword-java.lang.String-"><code>encodePassword(String)</code></a>. 
 This method will encode the <code>rawPass</code> (using the system wide <code>salt</code>),  and then
 compared it with the presented <code>encPass</code>.
 </p>
 
 <p>
 For an explanation of salts, please refer to <a href="../../../../../org/apache/archiva/redback/policy/PasswordEncoder.html#setSystemSalt-java.lang.Object-"><code>setSystemSalt(Object)</code></a>.
 </p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>encPass</code> - a pre-encoded password</dd>
<dd><code>rawPass</code> - a raw password to encode and compare against the pre-encoded password</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the password is valid , false otherwise</dd>
</dl>
</li>
</ul>
<a name="isPasswordValid-java.lang.String-java.lang.String-java.lang.Object-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>isPasswordValid</h4>
<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/archiva/redback/policy/PasswordEncoder.html#line.140">isPasswordValid</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;encPass,
                        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;rawPass,
                        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;salt)</pre>
<div class="block"><p>
 Validates a specified "raw" password against an encoded password, using a user specific salt.
 </p>
 
 <p>
 The encoded password should have previously been generated by <a href="../../../../../org/apache/archiva/redback/policy/PasswordEncoder.html#encodePassword-java.lang.String-java.lang.Object-"><code>encodePassword(String,
 Object)</code></a>. This method will encode the <code>rawPass</code> (using the optional <code>salt</code>),  and then
 compared it with the presented <code>encPass</code>.
 </p>
 
 <p>
 For a discussion of salts, please refer to <a href="../../../../../org/apache/archiva/redback/policy/PasswordEncoder.html#encodePassword-java.lang.String-java.lang.Object-"><code>encodePassword(String, Object)</code></a>.
 </p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>encPass</code> - a pre-encoded password</dd>
<dd><code>rawPass</code> - a raw password to encode and compare against the pre-encoded password</dd>
<dd><code>salt</code> - optionally used by the implementation to "salt" the raw password before encoding. A
        <code>null</code> value is legal.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the password is valid , false otherwise</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/PasswordEncoder.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">
<li><a href="../../../../../org/apache/archiva/redback/policy/MustChangePasswordException.html" title="class in org.apache.archiva.redback.policy"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/archiva/redback/policy/PasswordEncodingException.html" title="class in org.apache.archiva.redback.policy"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/archiva/redback/policy/PasswordEncoder.html" target="_top">Frames</a></li>
<li><a href="PasswordEncoder.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.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>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2006&#x2013;2019 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>