1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.jetspeed.security.spi;
18
19 import org.apache.jetspeed.security.PasswordCredential;
20 import org.apache.jetspeed.security.SecurityException;
21 import org.apache.jetspeed.security.om.InternalCredential;
22
23 /***
24 * <p>
25 * AlgorithmUpgradeCredentialPasswordEncoder which is provided with the InternalCredential as well
26 * to allow for migrating between two different encoding schemes.
27 * </p>
28 * <p>
29 * The extended encode method is *only* called in the context of validating an existing (old) password,
30 * and not used for creating or updating to a new password directl!
31 * </p>
32 * <p>
33 * After successfull authentication, the recodeIfNeeded method will be called allowing to migrate to the new encryption scheme.
34 * </p>
35 *
36 * @author <a href="mailto:ate@douma.nu">Ate Douma</a>
37 * @version $Id$
38 */
39 public interface AlgorithmUpgradeCredentialPasswordEncoder extends CredentialPasswordEncoder
40 {
41 String encode(String userName, String clearTextPassword, InternalCredential credential) throws SecurityException;
42 void recodeIfNeeded(String userName, String clearTextPassword, InternalCredential credential) throws SecurityException;
43 boolean usesOldEncodingAlgorithm(PasswordCredential credential);
44 }