1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.apache.juddi.cryptor;
17
18 import org.apache.commons.logging.Log;
19 import org.apache.commons.logging.LogFactory;
20 import org.apache.juddi.util.Config;
21 import org.apache.juddi.util.Loader;
22
23 /***
24 * Used to create the org.apache.juddi.cryptor.Cryptor implementation
25 * as specified by the 'juddi.cryptor' property. Defaults to
26 * org.apache.juddi.cryptor.DefaultCryptor if an implementation is not
27 * specified.
28 *
29 * @author Steve Viens (sviens@apache.org)
30 */
31 public abstract class CryptorFactory
32 {
33
34 private static Log log = LogFactory.getLog(CryptorFactory.class);
35
36
37 private static final String IMPL_KEY = "juddi.cryptor";
38 private static final String DEFAULT_IMPL = "org.apache.juddi.cryptor.DefaultCryptor";
39
40
41 private static Cryptor cryptor = null;
42
43 /***
44 * Returns a new instance of a CryptorFactory.
45 *
46 * @return Cryptor
47 */
48 public static Cryptor getCryptor()
49 {
50 if (cryptor == null)
51 cryptor = createCryptor();
52 return cryptor;
53 }
54
55 /***
56 * Returns a new instance of a Cryptor.
57 *
58 * @return Cryptor
59 */
60 private static synchronized Cryptor createCryptor()
61 {
62 if (cryptor != null)
63 return cryptor;
64
65
66 String className = Config.getStringProperty(IMPL_KEY,DEFAULT_IMPL);
67
68
69 log.debug("Cryptor Implementation = " + className);
70
71 Class cryptorClass = null;
72 try
73 {
74
75 cryptorClass = Loader.getClassForName(className);
76 }
77 catch(ClassNotFoundException e)
78 {
79 log.error("The specified Cryptor class '" + className +
80 "' was not found in classpath.");
81 log.error(e);
82 }
83
84 try
85 {
86
87 cryptor = (Cryptor)cryptorClass.newInstance();
88 }
89 catch(Exception e)
90 {
91 log.error("Exception while attempting to instantiate the " +
92 "implementation of Cryptor: " + cryptorClass.getName() +
93 "\n" + e.getMessage());
94 log.error(e);
95 }
96
97 return cryptor;
98 }
99
100
101 /****************************************************************************/
102 /****************************** TEST DRIVER *********************************/
103 /****************************************************************************/
104
105
106 public static void main(String[] args)
107 throws Exception
108 {
109 Cryptor cryptor = CryptorFactory.getCryptor();
110
111 String encryptedText = cryptor.encrypt("password");
112 System.out.println("EnCrypted text [" + encryptedText + "]");
113
114 String decryptedText = cryptor.decrypt(encryptedText);
115 System.out.println("DeCrypted text " + decryptedText);
116 }
117 }