-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Roger,

On 12/31/16 2:30 PM, Roger Marquis wrote:
>>> Do we also need to derive the algorithm, saltLength and
>>> iterations from server.xml?
>> 
>> Nope. If you follow what's in that presentation starting on slide
>> 29,
> 
> This is the design element that isn't clear. Since the stored hash
> will constant across 99% of use cases, if not 100%, usability
> measures indicate it should be an optional default?  It's also odd
> considering the method doesn't require a dev to derive any other
> hash elements.

I'm not sure what you mean, here. You're right, once set, a set of
parameters (e.g. salt length = 64 bits, iteration count=10k), they
aren't likely to change for a while. But the encapsulation of
everything into the CredentialHandler implementation means that you
can adjust those parameters upward (e.g. salt length=128 bits,
iteration count=100k) in the future without having to change any code
at all.

You can even change from salted-iteration over to PBKDF2 or bcrypt or
whatever trivially by changing the CH configuration to use a set of
nested CredentialHandlers:

<CredentialHandler type="combined"> (paraphrasing)
  <CredentialHandler type="pbkdf2" /> (the new scheme)
  <CredentialHandler type="sha256" /> (the old scheme)
</CredentialHandler>

No code needs to change and you can switch algorithms.

>> You could easily write your own CredentialHandler
> 
> That would be easy enough but also likely to require more
> refactoring across subsequent Tomcat releases.  Minimizing
> maintenance is one of the main reasons we prefer Tomcat (and Java)
> to other http backends.

Understood. The introduction of the CredentialHandler interface was
done precisely because it was awkward to do anything similar with
previous versions. You can never really divorce this kind of thing
from the container entirely.

What you can do is write a custom CredentialHandler and package it in
a separate JAR file that is independent from your application (but
semi-dependent upon the Tomcat version).

For the most part, the built-in CredentialHandler implementations
should meet the needs of most environments, but new ones can be
written and plugged-in should the need arise.

And, of course, the application can get a reference to the configured
CH for an application and use it, either for verification of an
existing password or for mutating a new one (e.g. for "change
password" operations).

- -chris
-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQIcBAEBCAAGBQJYaKqdAAoJEBzwKT+lPKRY1HoQAIkJM3zWOkkw+J+0Cd7KFDgf
YevIcrHZyb6NXfyMZ4vW4DsscoYZvXA6xFaicPqvhkpLugvDV9EnFVxrXZZOwCJL
a3Ni13npKD6oBMLWfg+HmuTsg9VhCDZBzz5139LccyNyUUTo5Hww04b/ffKqjl1M
ZWoxn63xWXLOSY2BpbNr8AyzYV3nE5MXURFM7U/mauQcYdf4ZOIlOlSti8ireGm6
iYgPIbHgJ7S0xNWdg3jP/AWrYY7yYos7tM/H6ZlqvfgBAuoyvUCNkgSi0zI7geB8
Ad4EQ4x0J2rfKqTPlWZenuwI/LAeq2jhZr606tTXg62jAajtIr103LLqJfN3C83U
kbKLeS1U/Qn7o6tvJVvTmwFIt65T3HDXn8N5/1msIbZFVh14MOS9wEpWAVv5wjBb
25yb244DzchOf4PntwifqvvyFEcR+EKriMM7IGSKkqr/97RVA9fw91Kbg48eetfF
+jI6QKcMNaTcOg9OHewXIAfLlNFwZeLbkWnief0ekU5PrxEEEk30+u01sYY4Xn5F
I6FMP1lkS8O1GMglSBQRmr9e7ELlqvmH3IdHjNkxcfcju18iaa4KCPz74C5eECJc
4vRp80ogCbrDr8OqpgaZZ/RkF/BLEDhAh+8VTsGhBcF4oIWHQ8bDtU+Ann2ZqauR
Uxo76eLV2Xmo9w9Hihcs
=KpQ+
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to