<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head><meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>AuthenticatorTest xref</title>
<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../testapidocs/org/apache/juddi/auth/AuthenticatorTest.html">View Javadoc</a></div><pre>
<a class="jxr_linenumber" name="L1" href="#L1">1</a>   <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L2" href="#L2">2</a>   <em class="jxr_comment"> * Copyright 2001-2009 The Apache Software Foundation.</em>
<a class="jxr_linenumber" name="L3" href="#L3">3</a>   <em class="jxr_comment"> * </em>
<a class="jxr_linenumber" name="L4" href="#L4">4</a>   <em class="jxr_comment"> * Licensed under the Apache License, Version 2.0 (the "License");</em>
<a class="jxr_linenumber" name="L5" href="#L5">5</a>   <em class="jxr_comment"> * you may not use this file except in compliance with the License.</em>
<a class="jxr_linenumber" name="L6" href="#L6">6</a>   <em class="jxr_comment"> * You may obtain a copy of the License at</em>
<a class="jxr_linenumber" name="L7" href="#L7">7</a>   <em class="jxr_comment"> *      <a href="http://www.apache.org/licenses/LICENSE-2." target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.</a>0</em>
<a class="jxr_linenumber" name="L8" href="#L8">8</a>   <em class="jxr_comment"> * </em>
<a class="jxr_linenumber" name="L9" href="#L9">9</a>   <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing, software</em>
<a class="jxr_linenumber" name="L10" href="#L10">10</a>  <em class="jxr_comment"> * distributed under the License is distributed on an "AS IS" BASIS,</em>
<a class="jxr_linenumber" name="L11" href="#L11">11</a>  <em class="jxr_comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
<a class="jxr_linenumber" name="L12" href="#L12">12</a>  <em class="jxr_comment"> * See the License for the specific language governing permissions and</em>
<a class="jxr_linenumber" name="L13" href="#L13">13</a>  <em class="jxr_comment"> * limitations under the License.</em>
<a class="jxr_linenumber" name="L14" href="#L14">14</a>  <em class="jxr_comment"> */</em>
<a class="jxr_linenumber" name="L15" href="#L15">15</a>  <strong class="jxr_keyword">package</strong> org.apache.juddi.auth;
<a class="jxr_linenumber" name="L16" href="#L16">16</a>  
<a class="jxr_linenumber" name="L17" href="#L17">17</a>  <strong class="jxr_keyword">import</strong> java.io.File;
<a class="jxr_linenumber" name="L18" href="#L18">18</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
<a class="jxr_linenumber" name="L19" href="#L19">19</a>  <strong class="jxr_keyword">import</strong> java.io.StringWriter;
<a class="jxr_linenumber" name="L20" href="#L20">20</a>  <strong class="jxr_keyword">import</strong> java.security.InvalidKeyException;
<a class="jxr_linenumber" name="L21" href="#L21">21</a>  
<a class="jxr_linenumber" name="L22" href="#L22">22</a>  <strong class="jxr_keyword">import</strong> javax.xml.bind.JAXBContext;
<a class="jxr_linenumber" name="L23" href="#L23">23</a>  <strong class="jxr_keyword">import</strong> javax.xml.bind.JAXBException;
<a class="jxr_linenumber" name="L24" href="#L24">24</a>  <strong class="jxr_keyword">import</strong> javax.xml.bind.Marshaller;
<a class="jxr_linenumber" name="L25" href="#L25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.configuration.Configuration;
<a class="jxr_linenumber" name="L26" href="#L26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.configuration.ConfigurationException;
<a class="jxr_linenumber" name="L27" href="#L27">27</a>  
<a class="jxr_linenumber" name="L28" href="#L28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.logging.Log;
<a class="jxr_linenumber" name="L29" href="#L29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.logging.LogFactory;
<a class="jxr_linenumber" name="L30" href="#L30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.api.impl.API_010_PublisherTest;
<a class="jxr_linenumber" name="L31" href="#L31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.config.AppConfig;
<a class="jxr_linenumber" name="L32" href="#L32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.config.Property;
<a class="jxr_linenumber" name="L33" href="#L33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.v3.client.cryptor.AES128Cryptor;
<a class="jxr_linenumber" name="L34" href="#L34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.v3.client.cryptor.AES256Cryptor;
<a class="jxr_linenumber" name="L35" href="#L35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.v3.client.cryptor.Cryptor;
<a class="jxr_linenumber" name="L36" href="#L36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.cryptor.CryptorFactory;
<a class="jxr_linenumber" name="L37" href="#L37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.v3.client.cryptor.DefaultCryptor;
<a class="jxr_linenumber" name="L38" href="#L38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.v3.client.cryptor.TripleDESCrytor;
<a class="jxr_linenumber" name="L39" href="#L39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.v3.auth.Authenticator;
<a class="jxr_linenumber" name="L40" href="#L40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.v3.auth.CryptedXMLDocAuthenticator;
<a class="jxr_linenumber" name="L41" href="#L41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.v3.auth.JUDDIAuthenticator;
<a class="jxr_linenumber" name="L42" href="#L42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.v3.auth.JuddiUsers;
<a class="jxr_linenumber" name="L43" href="#L43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.v3.auth.MD5XMLDocAuthenticator;
<a class="jxr_linenumber" name="L44" href="#L44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.v3.auth.User;
<a class="jxr_linenumber" name="L45" href="#L45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.v3.auth.XMLDocAuthenticator;
<a class="jxr_linenumber" name="L46" href="#L46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.v3.error.AuthenticationException;
<a class="jxr_linenumber" name="L47" href="#L47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.v3.error.FatalErrorException;
<a class="jxr_linenumber" name="L48" href="#L48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.juddi.v3.error.UnknownUserException;
<a class="jxr_linenumber" name="L49" href="#L49">49</a>  <strong class="jxr_keyword">import</strong> org.junit.Assert;
<a class="jxr_linenumber" name="L50" href="#L50">50</a>  <strong class="jxr_keyword">import</strong> org.junit.Test;
<a class="jxr_linenumber" name="L51" href="#L51">51</a>  
<a class="jxr_linenumber" name="L52" href="#L52">52</a>  <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L53" href="#L53">53</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="mailto:kstam@apache.org" target="alexandria_uri">mailto:kstam@apache.org</a>"&gt;Kurt T Stam&lt;/a&gt;</em>
<a class="jxr_linenumber" name="L54" href="#L54">54</a>  <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L55" href="#L55">55</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/juddi/auth/AuthenticatorTest.html">AuthenticatorTest</a> 
<a class="jxr_linenumber" name="L56" href="#L56">56</a>  {
<a class="jxr_linenumber" name="L57" href="#L57">57</a>  	<strong class="jxr_keyword">private</strong> Log logger = LogFactory.getLog(<strong class="jxr_keyword">this</strong>.getClass());
<a class="jxr_linenumber" name="L58" href="#L58">58</a>  	<em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L59" href="#L59">59</a>  <em class="jxr_javadoccomment">	 * The DefaultAuthenticator is basically a pass-through.</em>
<a class="jxr_linenumber" name="L60" href="#L60">60</a>  <em class="jxr_javadoccomment">	 * @throws ConfigurationException</em>
<a class="jxr_linenumber" name="L61" href="#L61">61</a>  <em class="jxr_javadoccomment">	 */</em>
<a class="jxr_linenumber" name="L62" href="#L62">62</a>  	@Test
<a class="jxr_linenumber" name="L63" href="#L63">63</a>  	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testDefaultAuthenticator()
<a class="jxr_linenumber" name="L64" href="#L64">64</a>  	{
<a class="jxr_linenumber" name="L65" href="#L65">65</a>              System.out.println(<span class="jxr_string">"testDefaultAuthenticator"</span>);
<a class="jxr_linenumber" name="L66" href="#L66">66</a>  		Authenticator auth = <strong class="jxr_keyword">new</strong> JUDDIAuthenticator();
<a class="jxr_linenumber" name="L67" href="#L67">67</a>  		<strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L68" href="#L68">68</a>  			API_010_PublisherTest api010 = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/juddi/api/impl/API_010_PublisherTest.html">API_010_PublisherTest</a>();
<a class="jxr_linenumber" name="L69" href="#L69">69</a>  			api010.saveJoePublisher();
<a class="jxr_linenumber" name="L70" href="#L70">70</a>  			api010.saveSamSyndicator();
<a class="jxr_linenumber" name="L71" href="#L71">71</a>  
<a class="jxr_linenumber" name="L72" href="#L72">72</a>  			auth.authenticate(<span class="jxr_string">"joepublisher"</span>,<span class="jxr_string">"password"</span>);
<a class="jxr_linenumber" name="L73" href="#L73">73</a>  			auth.authenticate(<span class="jxr_string">"ssyndicator"</span>,<span class="jxr_string">"badpass"</span>);
<a class="jxr_linenumber" name="L74" href="#L74">74</a>  			
<a class="jxr_linenumber" name="L75" href="#L75">75</a>  		} <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="L76" href="#L76">76</a>  			logger.error(e.getMessage(),e);
<a class="jxr_linenumber" name="L77" href="#L77">77</a>  			Assert.fail(<span class="jxr_string">"unexpected"</span>);
<a class="jxr_linenumber" name="L78" href="#L78">78</a>  		}
<a class="jxr_linenumber" name="L79" href="#L79">79</a>  	}
<a class="jxr_linenumber" name="L80" href="#L80">80</a>  	@Test
<a class="jxr_linenumber" name="L81" href="#L81">81</a>  	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCreateJuddiUsers() <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L82" href="#L82">82</a>  	{
<a class="jxr_linenumber" name="L83" href="#L83">83</a>              System.out.println(<span class="jxr_string">"testCreateJuddiUsers"</span>);
<a class="jxr_linenumber" name="L84" href="#L84">84</a>  		<strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L85" href="#L85">85</a>  			JuddiUsers juddiUsers = <strong class="jxr_keyword">new</strong> JuddiUsers();
<a class="jxr_linenumber" name="L86" href="#L86">86</a>  			juddiUsers.getUser().add(<strong class="jxr_keyword">new</strong> User(<span class="jxr_string">"anou_mana"</span>,<span class="jxr_string">"password"</span>));
<a class="jxr_linenumber" name="L87" href="#L87">87</a>  			juddiUsers.getUser().add(<strong class="jxr_keyword">new</strong> User(<span class="jxr_string">"bozo"</span>,<span class="jxr_string">"clown"</span>));
<a class="jxr_linenumber" name="L88" href="#L88">88</a>  			juddiUsers.getUser().add(<strong class="jxr_keyword">new</strong> User(<span class="jxr_string">"sviens"</span>,<span class="jxr_string">"password"</span>));
<a class="jxr_linenumber" name="L89" href="#L89">89</a>  			
<a class="jxr_linenumber" name="L90" href="#L90">90</a>  			StringWriter writer = <strong class="jxr_keyword">new</strong> StringWriter();
<a class="jxr_linenumber" name="L91" href="#L91">91</a>  			JAXBContext context = JAXBContext.newInstance(juddiUsers.getClass());
<a class="jxr_linenumber" name="L92" href="#L92">92</a>  			Marshaller marshaller = context.createMarshaller();
<a class="jxr_linenumber" name="L93" href="#L93">93</a>  			marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
<a class="jxr_linenumber" name="L94" href="#L94">94</a>  			marshaller.marshal(juddiUsers, writer);
<a class="jxr_linenumber" name="L95" href="#L95">95</a>  			logger.info(<span class="jxr_string">"\n"</span> +  writer.toString());
<a class="jxr_linenumber" name="L96" href="#L96">96</a>  		} <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="L97" href="#L97">97</a>  			logger.error(e.getMessage(),e);
<a class="jxr_linenumber" name="L98" href="#L98">98</a>  			Assert.fail(<span class="jxr_string">"unexpected"</span>);
<a class="jxr_linenumber" name="L99" href="#L99">99</a>  		}
<a class="jxr_linenumber" name="L100" href="#L100">100</a> 	}
<a class="jxr_linenumber" name="L101" href="#L101">101</a> 	<em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L102" href="#L102">102</a> <em class="jxr_javadoccomment">	 * The credentials will be read from the juddi-users.xml in the test/resources directory </em>
<a class="jxr_linenumber" name="L103" href="#L103">103</a> <em class="jxr_javadoccomment">	 * of this module. We're expecting the following authentication requests to succeed.</em>
<a class="jxr_linenumber" name="L104" href="#L104">104</a> <em class="jxr_javadoccomment">	 */</em>
<a class="jxr_linenumber" name="L105" href="#L105">105</a> 	@Test
<a class="jxr_linenumber" name="L106" href="#L106">106</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testXMLDocAuthenticator() 
<a class="jxr_linenumber" name="L107" href="#L107">107</a> 	{
<a class="jxr_linenumber" name="L108" href="#L108">108</a>             System.out.println(<span class="jxr_string">"testXMLDocAuthenticator"</span>);
<a class="jxr_linenumber" name="L109" href="#L109">109</a> 		<strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L110" href="#L110">110</a> 			Authenticator auth = <strong class="jxr_keyword">new</strong> XMLDocAuthenticator();
<a class="jxr_linenumber" name="L111" href="#L111">111</a> 			auth.authenticate(<span class="jxr_string">"anou_mana"</span>,<span class="jxr_string">"password"</span>);
<a class="jxr_linenumber" name="L112" href="#L112">112</a> 			auth.authenticate(<span class="jxr_string">"bozo"</span>,<span class="jxr_string">"clown"</span>);
<a class="jxr_linenumber" name="L113" href="#L113">113</a> 			auth.authenticate(<span class="jxr_string">"sviens"</span>,<span class="jxr_string">"password"</span>);
<a class="jxr_linenumber" name="L114" href="#L114">114</a> 		} <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="L115" href="#L115">115</a> 			logger.error(e.getMessage(),e);
<a class="jxr_linenumber" name="L116" href="#L116">116</a> 			Assert.fail(<span class="jxr_string">"unexpected"</span>);
<a class="jxr_linenumber" name="L117" href="#L117">117</a> 		}
<a class="jxr_linenumber" name="L118" href="#L118">118</a> 	}
<a class="jxr_linenumber" name="L119" href="#L119">119</a> 	<em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L120" href="#L120">120</a> <em class="jxr_javadoccomment">	 * The credentials will be read from the juddi-users.xml in the test/resources directory </em>
<a class="jxr_linenumber" name="L121" href="#L121">121</a> <em class="jxr_javadoccomment">	 * of this module. We're expecting the following authentication request to fail due</em>
<a class="jxr_linenumber" name="L122" href="#L122">122</a> <em class="jxr_javadoccomment">	 * to a bad password.</em>
<a class="jxr_linenumber" name="L123" href="#L123">123</a> <em class="jxr_javadoccomment">	 * </em>
<a class="jxr_linenumber" name="L124" href="#L124">124</a> <em class="jxr_javadoccomment">	 * @throws AuthenticationException</em>
<a class="jxr_linenumber" name="L125" href="#L125">125</a> <em class="jxr_javadoccomment">	 * @throws FatalErrorException</em>
<a class="jxr_linenumber" name="L126" href="#L126">126</a> <em class="jxr_javadoccomment">	 * @throws IOException </em>
<a class="jxr_linenumber" name="L127" href="#L127">127</a> <em class="jxr_javadoccomment">	 * @throws JAXBException </em>
<a class="jxr_linenumber" name="L128" href="#L128">128</a> <em class="jxr_javadoccomment">	 */</em>
<a class="jxr_linenumber" name="L129" href="#L129">129</a> 	@Test(expected=UnknownUserException.<strong class="jxr_keyword">class</strong>) 
<a class="jxr_linenumber" name="L130" href="#L130">130</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testBadXMLDocAuthenticator() <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L131" href="#L131">131</a> 	{
<a class="jxr_linenumber" name="L132" href="#L132">132</a>             System.out.println(<span class="jxr_string">"testBadXMLDocAuthenticator"</span>);
<a class="jxr_linenumber" name="L133" href="#L133">133</a> 		Authenticator auth = <strong class="jxr_keyword">new</strong> XMLDocAuthenticator();
<a class="jxr_linenumber" name="L134" href="#L134">134</a> 		auth.authenticate(<span class="jxr_string">"anou_mana"</span>,<span class="jxr_string">"badpass"</span>);
<a class="jxr_linenumber" name="L135" href="#L135">135</a> 	}
<a class="jxr_linenumber" name="L136" href="#L136">136</a> 	@Test
<a class="jxr_linenumber" name="L137" href="#L137">137</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCreateJuddiUsersEncrypted() <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L138" href="#L138">138</a> 	{
<a class="jxr_linenumber" name="L139" href="#L139">139</a>             System.out.println(<span class="jxr_string">"testCreateJuddiUsersEncrypted"</span>);
<a class="jxr_linenumber" name="L140" href="#L140">140</a> 		<strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L141" href="#L141">141</a> 			Cryptor cryptor = CryptorFactory.getCryptor();
<a class="jxr_linenumber" name="L142" href="#L142">142</a> 			JuddiUsers juddiUsers = <strong class="jxr_keyword">new</strong> JuddiUsers();
<a class="jxr_linenumber" name="L143" href="#L143">143</a> 			juddiUsers.getUser().add(<strong class="jxr_keyword">new</strong> User(<span class="jxr_string">"anou_mana"</span>,cryptor.encrypt(<span class="jxr_string">"password"</span>)));
<a class="jxr_linenumber" name="L144" href="#L144">144</a> 			juddiUsers.getUser().add(<strong class="jxr_keyword">new</strong> User(<span class="jxr_string">"bozo"</span>,cryptor.encrypt(<span class="jxr_string">"clown"</span>)));
<a class="jxr_linenumber" name="L145" href="#L145">145</a> 			juddiUsers.getUser().add(<strong class="jxr_keyword">new</strong> User(<span class="jxr_string">"sviens"</span>,cryptor.encrypt(<span class="jxr_string">"password"</span>)));
<a class="jxr_linenumber" name="L146" href="#L146">146</a> 			
<a class="jxr_linenumber" name="L147" href="#L147">147</a> 			StringWriter writer = <strong class="jxr_keyword">new</strong> StringWriter();
<a class="jxr_linenumber" name="L148" href="#L148">148</a> 			JAXBContext context = JAXBContext.newInstance(juddiUsers.getClass());
<a class="jxr_linenumber" name="L149" href="#L149">149</a> 			Marshaller marshaller = context.createMarshaller();
<a class="jxr_linenumber" name="L150" href="#L150">150</a> 			marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
<a class="jxr_linenumber" name="L151" href="#L151">151</a> 			marshaller.marshal(juddiUsers, writer);
<a class="jxr_linenumber" name="L152" href="#L152">152</a> 			logger.info(<span class="jxr_string">"\n"</span> +  writer.toString());
<a class="jxr_linenumber" name="L153" href="#L153">153</a> 		} <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="L154" href="#L154">154</a> 			logger.error(e.getMessage(),e);
<a class="jxr_linenumber" name="L155" href="#L155">155</a> 			Assert.fail(<span class="jxr_string">"unexpected"</span>);
<a class="jxr_linenumber" name="L156" href="#L156">156</a> 		}
<a class="jxr_linenumber" name="L157" href="#L157">157</a> 	}
<a class="jxr_linenumber" name="L158" href="#L158">158</a> 	<em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L159" href="#L159">159</a> <em class="jxr_javadoccomment">	 * The credentials will be read from the juddi-users.xml in the test/resources directory </em>
<a class="jxr_linenumber" name="L160" href="#L160">160</a> <em class="jxr_javadoccomment">	 * of this module. We're expecting the following authentication requests to succeed.</em>
<a class="jxr_linenumber" name="L161" href="#L161">161</a> <em class="jxr_javadoccomment">	 */</em>
<a class="jxr_linenumber" name="L162" href="#L162">162</a> 	@Test
<a class="jxr_linenumber" name="L163" href="#L163">163</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCryptedXMLDocAuthenticator() 
<a class="jxr_linenumber" name="L164" href="#L164">164</a> 	{
<a class="jxr_linenumber" name="L165" href="#L165">165</a>             System.out.println(<span class="jxr_string">"testCryptedXMLDocAuthenticator"</span>);
<a class="jxr_linenumber" name="L166" href="#L166">166</a> 		<strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L167" href="#L167">167</a> 			Authenticator auth = <strong class="jxr_keyword">new</strong> CryptedXMLDocAuthenticator();
<a class="jxr_linenumber" name="L168" href="#L168">168</a> 			auth.authenticate(<span class="jxr_string">"anou_mana"</span>,<span class="jxr_string">"password"</span>);
<a class="jxr_linenumber" name="L169" href="#L169">169</a> 			auth.authenticate(<span class="jxr_string">"bozo"</span>,<span class="jxr_string">"clown"</span>);
<a class="jxr_linenumber" name="L170" href="#L170">170</a> 			auth.authenticate(<span class="jxr_string">"sviens"</span>,<span class="jxr_string">"password"</span>);
<a class="jxr_linenumber" name="L171" href="#L171">171</a> 		} <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="L172" href="#L172">172</a> 			logger.error(e.getMessage(),e);
<a class="jxr_linenumber" name="L173" href="#L173">173</a> 			Assert.fail(<span class="jxr_string">"unexpected"</span>);
<a class="jxr_linenumber" name="L174" href="#L174">174</a> 		}
<a class="jxr_linenumber" name="L175" href="#L175">175</a> 	}
<a class="jxr_linenumber" name="L176" href="#L176">176</a> 	<em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L177" href="#L177">177</a> <em class="jxr_javadoccomment">	 * The credentials will be read from the juddi-users-encrypted.xml in the test/resources directory </em>
<a class="jxr_linenumber" name="L178" href="#L178">178</a> <em class="jxr_javadoccomment">	 * of this module. We're expecting the following authentication request to fail due</em>
<a class="jxr_linenumber" name="L179" href="#L179">179</a> <em class="jxr_javadoccomment">	 * to a bad password.</em>
<a class="jxr_linenumber" name="L180" href="#L180">180</a> <em class="jxr_javadoccomment">	 * </em>
<a class="jxr_linenumber" name="L181" href="#L181">181</a> <em class="jxr_javadoccomment">	 * @throws AuthenticationException</em>
<a class="jxr_linenumber" name="L182" href="#L182">182</a> <em class="jxr_javadoccomment">	 * @throws FatalErrorException</em>
<a class="jxr_linenumber" name="L183" href="#L183">183</a> <em class="jxr_javadoccomment">	 * @throws IOException </em>
<a class="jxr_linenumber" name="L184" href="#L184">184</a> <em class="jxr_javadoccomment">	 * @throws JAXBException </em>
<a class="jxr_linenumber" name="L185" href="#L185">185</a> <em class="jxr_javadoccomment">	 */</em>
<a class="jxr_linenumber" name="L186" href="#L186">186</a> 	@Test(expected=UnknownUserException.<strong class="jxr_keyword">class</strong>) 
<a class="jxr_linenumber" name="L187" href="#L187">187</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testBadCryptedXMLDocAuthenticator() <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L188" href="#L188">188</a>                 
<a class="jxr_linenumber" name="L189" href="#L189">189</a> 	{
<a class="jxr_linenumber" name="L190" href="#L190">190</a>             System.out.println(<span class="jxr_string">"testBadCryptedXMLDocAuthenticator"</span>);
<a class="jxr_linenumber" name="L191" href="#L191">191</a>  		Authenticator auth = <strong class="jxr_keyword">new</strong> CryptedXMLDocAuthenticator();
<a class="jxr_linenumber" name="L192" href="#L192">192</a> 		auth.authenticate(<span class="jxr_string">"anou_mana"</span>,<span class="jxr_string">"badpass"</span>);
<a class="jxr_linenumber" name="L193" href="#L193">193</a> 	}
<a class="jxr_linenumber" name="L194" href="#L194">194</a>         
<a class="jxr_linenumber" name="L195" href="#L195">195</a>         
<a class="jxr_linenumber" name="L196" href="#L196">196</a>         @Test
<a class="jxr_linenumber" name="L197" href="#L197">197</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testMD5XMLDocAuthenticator() 
<a class="jxr_linenumber" name="L198" href="#L198">198</a> 	{
<a class="jxr_linenumber" name="L199" href="#L199">199</a>             System.out.println(<span class="jxr_string">"testMD5XMLDocAuthenticator"</span>);
<a class="jxr_linenumber" name="L200" href="#L200">200</a> 		<strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L201" href="#L201">201</a> 			Authenticator auth = <strong class="jxr_keyword">new</strong> MD5XMLDocAuthenticator();
<a class="jxr_linenumber" name="L202" href="#L202">202</a> 			auth.authenticate(<span class="jxr_string">"anou_mana"</span>,<span class="jxr_string">"password"</span>);
<a class="jxr_linenumber" name="L203" href="#L203">203</a> 			auth.authenticate(<span class="jxr_string">"bozo"</span>,<span class="jxr_string">"clown"</span>);
<a class="jxr_linenumber" name="L204" href="#L204">204</a> 			auth.authenticate(<span class="jxr_string">"sviens"</span>,<span class="jxr_string">"password"</span>);
<a class="jxr_linenumber" name="L205" href="#L205">205</a> 		} <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="L206" href="#L206">206</a> 			logger.error(e.getMessage(),e);
<a class="jxr_linenumber" name="L207" href="#L207">207</a> 			Assert.fail(<span class="jxr_string">"unexpected"</span>);
<a class="jxr_linenumber" name="L208" href="#L208">208</a> 		}
<a class="jxr_linenumber" name="L209" href="#L209">209</a> 	}
<a class="jxr_linenumber" name="L210" href="#L210">210</a>         
<a class="jxr_linenumber" name="L211" href="#L211">211</a>         
<a class="jxr_linenumber" name="L212" href="#L212">212</a>         
<a class="jxr_linenumber" name="L213" href="#L213">213</a>         @Test(expected=UnknownUserException.<strong class="jxr_keyword">class</strong>) 
<a class="jxr_linenumber" name="L214" href="#L214">214</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testBadMD5XMLDocAuthenticator() <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L215" href="#L215">215</a> 	{
<a class="jxr_linenumber" name="L216" href="#L216">216</a> 		Authenticator auth = <strong class="jxr_keyword">new</strong> MD5XMLDocAuthenticator();
<a class="jxr_linenumber" name="L217" href="#L217">217</a> 		auth.authenticate(<span class="jxr_string">"anou_mana"</span>,<span class="jxr_string">"badpass"</span>);
<a class="jxr_linenumber" name="L218" href="#L218">218</a> 	}
<a class="jxr_linenumber" name="L219" href="#L219">219</a>         
<a class="jxr_linenumber" name="L220" href="#L220">220</a>         
<a class="jxr_linenumber" name="L221" href="#L221">221</a>         @Test
<a class="jxr_linenumber" name="L222" href="#L222">222</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testAES128Cryptor() 
<a class="jxr_linenumber" name="L223" href="#L223">223</a> 	{
<a class="jxr_linenumber" name="L224" href="#L224">224</a>             System.out.println(<span class="jxr_string">"testAES128Cryptor"</span>);
<a class="jxr_linenumber" name="L225" href="#L225">225</a> 		<strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L226" href="#L226">226</a> 			Cryptor auth = <strong class="jxr_keyword">new</strong> AES128Cryptor();
<a class="jxr_linenumber" name="L227" href="#L227">227</a>                         String encrypt = auth.encrypt(<span class="jxr_string">"test"</span>);
<a class="jxr_linenumber" name="L228" href="#L228">228</a>                         Assert.assertNotNull(encrypt);
<a class="jxr_linenumber" name="L229" href="#L229">229</a>                         Assert.assertNotSame(encrypt, <span class="jxr_string">"test"</span>);
<a class="jxr_linenumber" name="L230" href="#L230">230</a>                         String test=auth.decrypt(encrypt);
<a class="jxr_linenumber" name="L231" href="#L231">231</a>                         Assert.assertEquals(test, <span class="jxr_string">"test"</span>);
<a class="jxr_linenumber" name="L232" href="#L232">232</a> 		} <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="L233" href="#L233">233</a> 			logger.error(e.getMessage(),e);
<a class="jxr_linenumber" name="L234" href="#L234">234</a> 			Assert.fail(<span class="jxr_string">"unexpected"</span>);
<a class="jxr_linenumber" name="L235" href="#L235">235</a> 		}
<a class="jxr_linenumber" name="L236" href="#L236">236</a> 	}
<a class="jxr_linenumber" name="L237" href="#L237">237</a>         
<a class="jxr_linenumber" name="L238" href="#L238">238</a>         
<a class="jxr_linenumber" name="L239" href="#L239">239</a>         @Test
<a class="jxr_linenumber" name="L240" href="#L240">240</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testTripleDESCryptor() 
<a class="jxr_linenumber" name="L241" href="#L241">241</a> 	{
<a class="jxr_linenumber" name="L242" href="#L242">242</a>             System.out.println(<span class="jxr_string">"testTripleDESCryptor"</span>);
<a class="jxr_linenumber" name="L243" href="#L243">243</a> 		<strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L244" href="#L244">244</a> 			Cryptor auth = <strong class="jxr_keyword">new</strong> TripleDESCrytor();
<a class="jxr_linenumber" name="L245" href="#L245">245</a>                         String encrypt = auth.encrypt(<span class="jxr_string">"test"</span>);
<a class="jxr_linenumber" name="L246" href="#L246">246</a>                         Assert.assertNotNull(encrypt);
<a class="jxr_linenumber" name="L247" href="#L247">247</a>                         Assert.assertNotSame(encrypt, <span class="jxr_string">"test"</span>);
<a class="jxr_linenumber" name="L248" href="#L248">248</a>                         String test=auth.decrypt(encrypt);
<a class="jxr_linenumber" name="L249" href="#L249">249</a>                         Assert.assertEquals(test, <span class="jxr_string">"test"</span>);
<a class="jxr_linenumber" name="L250" href="#L250">250</a> 		} <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="L251" href="#L251">251</a> 			logger.error(e.getMessage(),e);
<a class="jxr_linenumber" name="L252" href="#L252">252</a> 			Assert.fail(<span class="jxr_string">"unexpected"</span>);
<a class="jxr_linenumber" name="L253" href="#L253">253</a> 		}
<a class="jxr_linenumber" name="L254" href="#L254">254</a> 	}
<a class="jxr_linenumber" name="L255" href="#L255">255</a>         
<a class="jxr_linenumber" name="L256" href="#L256">256</a>         
<a class="jxr_linenumber" name="L257" href="#L257">257</a>         @Test
<a class="jxr_linenumber" name="L258" href="#L258">258</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testDefaultCryptor() 
<a class="jxr_linenumber" name="L259" href="#L259">259</a> 	{
<a class="jxr_linenumber" name="L260" href="#L260">260</a>             System.out.println(<span class="jxr_string">"testDefaultCryptor"</span>);
<a class="jxr_linenumber" name="L261" href="#L261">261</a> 		<strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L262" href="#L262">262</a> 			Cryptor auth = <strong class="jxr_keyword">new</strong> DefaultCryptor();
<a class="jxr_linenumber" name="L263" href="#L263">263</a>                         String encrypt = auth.encrypt(<span class="jxr_string">"test"</span>);
<a class="jxr_linenumber" name="L264" href="#L264">264</a>                         Assert.assertNotNull(encrypt);
<a class="jxr_linenumber" name="L265" href="#L265">265</a>                         Assert.assertNotSame(encrypt, <span class="jxr_string">"test"</span>);
<a class="jxr_linenumber" name="L266" href="#L266">266</a>                         String test=auth.decrypt(encrypt);
<a class="jxr_linenumber" name="L267" href="#L267">267</a>                         Assert.assertEquals(test, <span class="jxr_string">"test"</span>);
<a class="jxr_linenumber" name="L268" href="#L268">268</a> 		} <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="L269" href="#L269">269</a> 			logger.error(e.getMessage(),e);
<a class="jxr_linenumber" name="L270" href="#L270">270</a> 			Assert.fail(<span class="jxr_string">"unexpected"</span>);
<a class="jxr_linenumber" name="L271" href="#L271">271</a> 		}
<a class="jxr_linenumber" name="L272" href="#L272">272</a> 	}
<a class="jxr_linenumber" name="L273" href="#L273">273</a>         
<a class="jxr_linenumber" name="L274" href="#L274">274</a>         
<a class="jxr_linenumber" name="L275" href="#L275">275</a>         @Test
<a class="jxr_linenumber" name="L276" href="#L276">276</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testAES256Cryptor() 
<a class="jxr_linenumber" name="L277" href="#L277">277</a> 	{
<a class="jxr_linenumber" name="L278" href="#L278">278</a>                 System.out.println(<span class="jxr_string">"testAES256Cryptor"</span>);
<a class="jxr_linenumber" name="L279" href="#L279">279</a> 		<strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L280" href="#L280">280</a> 			Cryptor auth = <strong class="jxr_keyword">new</strong> AES256Cryptor();
<a class="jxr_linenumber" name="L281" href="#L281">281</a>                         String encrypt = auth.encrypt(<span class="jxr_string">"test"</span>);
<a class="jxr_linenumber" name="L282" href="#L282">282</a>                         Assert.assertNotNull(encrypt);
<a class="jxr_linenumber" name="L283" href="#L283">283</a>                         Assert.assertNotSame(encrypt, <span class="jxr_string">"test"</span>);
<a class="jxr_linenumber" name="L284" href="#L284">284</a>                         String test=auth.decrypt(encrypt);
<a class="jxr_linenumber" name="L285" href="#L285">285</a>                         Assert.assertEquals(test, <span class="jxr_string">"test"</span>);
<a class="jxr_linenumber" name="L286" href="#L286">286</a>                 }
<a class="jxr_linenumber" name="L287" href="#L287">287</a>                 <strong class="jxr_keyword">catch</strong> (InvalidKeyException e)
<a class="jxr_linenumber" name="L288" href="#L288">288</a>                 {
<a class="jxr_linenumber" name="L289" href="#L289">289</a>                     logger.error(<span class="jxr_string">"Hey, you're probably using the Oracle JRE without the Unlimited Strength Java Crypto Extensions installed. AES256 won't work until you download and install it"</span>, e);
<a class="jxr_linenumber" name="L290" href="#L290">290</a> 		} <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="L291" href="#L291">291</a> 			logger.error(e.getMessage(),e);
<a class="jxr_linenumber" name="L292" href="#L292">292</a> 			Assert.fail(<span class="jxr_string">"unexpected"</span>);
<a class="jxr_linenumber" name="L293" href="#L293">293</a> 		}
<a class="jxr_linenumber" name="L294" href="#L294">294</a> 	}
<a class="jxr_linenumber" name="L295" href="#L295">295</a>         
<a class="jxr_linenumber" name="L296" href="#L296">296</a>          @Test
<a class="jxr_linenumber" name="L297" href="#L297">297</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testDecryptFromConfigXML_InMemory() 
<a class="jxr_linenumber" name="L298" href="#L298">298</a> 	{
<a class="jxr_linenumber" name="L299" href="#L299">299</a>                 System.out.println(<span class="jxr_string">"testDecryptFromConfigXML_InMemory"</span>);
<a class="jxr_linenumber" name="L300" href="#L300">300</a> 		<strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L301" href="#L301">301</a>                     Configuration config =AppConfig.getConfiguration();
<a class="jxr_linenumber" name="L302" href="#L302">302</a>                     
<a class="jxr_linenumber" name="L303" href="#L303">303</a> 			Cryptor auth = <strong class="jxr_keyword">new</strong> AES128Cryptor();
<a class="jxr_linenumber" name="L304" href="#L304">304</a>                         String encrypt = auth.encrypt(<span class="jxr_string">"test"</span>);
<a class="jxr_linenumber" name="L305" href="#L305">305</a>                         Assert.assertNotNull(encrypt);
<a class="jxr_linenumber" name="L306" href="#L306">306</a>                         Assert.assertNotSame(encrypt, <span class="jxr_string">"test"</span>);
<a class="jxr_linenumber" name="L307" href="#L307">307</a>                         
<a class="jxr_linenumber" name="L308" href="#L308">308</a>                         <em class="jxr_comment">//add to the config</em>
<a class="jxr_linenumber" name="L309" href="#L309">309</a>                         config.addProperty(<span class="jxr_string">"testDecryptFromConfigXML"</span>, encrypt);
<a class="jxr_linenumber" name="L310" href="#L310">310</a>                         config.addProperty(<span class="jxr_string">"testDecryptFromConfigXML"</span>+ Property.ENCRYPTED_ATTRIBUTE, <span class="jxr_string">"true"</span>);
<a class="jxr_linenumber" name="L311" href="#L311">311</a>                         
<a class="jxr_linenumber" name="L312" href="#L312">312</a>                         <em class="jxr_comment">//retrieve it</em>
<a class="jxr_linenumber" name="L313" href="#L313">313</a>                         String pwd = config.getString(<span class="jxr_string">"testDecryptFromConfigXML"</span>);
<a class="jxr_linenumber" name="L314" href="#L314">314</a>                         Assert.assertNotNull(pwd);
<a class="jxr_linenumber" name="L315" href="#L315">315</a>                         <em class="jxr_comment">//test for encryption</em>
<a class="jxr_linenumber" name="L316" href="#L316">316</a>                         <strong class="jxr_keyword">if</strong> (config.getBoolean(<span class="jxr_string">"testDecryptFromConfigXML"</span> + Property.ENCRYPTED_ATTRIBUTE, false))
<a class="jxr_linenumber" name="L317" href="#L317">317</a>                         {
<a class="jxr_linenumber" name="L318" href="#L318">318</a>                             String test=auth.decrypt(pwd);
<a class="jxr_linenumber" name="L319" href="#L319">319</a>                             Assert.assertEquals(test, <span class="jxr_string">"test"</span>);
<a class="jxr_linenumber" name="L320" href="#L320">320</a>                         }
<a class="jxr_linenumber" name="L321" href="#L321">321</a>                         <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L322" href="#L322">322</a>                         {
<a class="jxr_linenumber" name="L323" href="#L323">323</a>                             Assert.fail(<span class="jxr_string">"config reports that the setting is not encrypted"</span>);
<a class="jxr_linenumber" name="L324" href="#L324">324</a>                        }
<a class="jxr_linenumber" name="L325" href="#L325">325</a>                 }
<a class="jxr_linenumber" name="L326" href="#L326">326</a>                 <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="L327" href="#L327">327</a> 			logger.error(e.getMessage(),e);
<a class="jxr_linenumber" name="L328" href="#L328">328</a> 			Assert.fail(<span class="jxr_string">"unexpected"</span>);
<a class="jxr_linenumber" name="L329" href="#L329">329</a> 		}
<a class="jxr_linenumber" name="L330" href="#L330">330</a> 	}
<a class="jxr_linenumber" name="L331" href="#L331">331</a>          
<a class="jxr_linenumber" name="L332" href="#L332">332</a>         @Test
<a class="jxr_linenumber" name="L333" href="#L333">333</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testDecryptFromConfigXML_Disk_Default() 
<a class="jxr_linenumber" name="L334" href="#L334">334</a> 	{
<a class="jxr_linenumber" name="L335" href="#L335">335</a>                 System.out.println(<span class="jxr_string">"testDecryptFromConfigXML_Disk_Default"</span>);
<a class="jxr_linenumber" name="L336" href="#L336">336</a> 		<strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L337" href="#L337">337</a>                     File f = <strong class="jxr_keyword">new</strong> File(<span class="jxr_string">"."</span>);
<a class="jxr_linenumber" name="L338" href="#L338">338</a>                     System.out.println(<span class="jxr_string">"Current working dir is "</span> + f.getAbsolutePath());
<a class="jxr_linenumber" name="L339" href="#L339">339</a>                     System.setProperty(AppConfig.JUDDI_CONFIGURATION_FILE_SYSTEM_PROPERTY,f.getAbsolutePath() + <span class="jxr_string">"/src/test/resources/juddiv3-enc-default.xml"</span>);
<a class="jxr_linenumber" name="L340" href="#L340">340</a>                     AppConfig.reloadConfig();
<a class="jxr_linenumber" name="L341" href="#L341">341</a>                     Configuration config =AppConfig.getConfiguration();
<a class="jxr_linenumber" name="L342" href="#L342">342</a>                     
<a class="jxr_linenumber" name="L343" href="#L343">343</a> 			Cryptor auth = <strong class="jxr_keyword">new</strong> DefaultCryptor();
<a class="jxr_linenumber" name="L344" href="#L344">344</a>                         
<a class="jxr_linenumber" name="L345" href="#L345">345</a>                         <em class="jxr_comment">//retrieve it</em>
<a class="jxr_linenumber" name="L346" href="#L346">346</a>                         String pwd = config.getString(<span class="jxr_string">"juddi.mail.smtp.password"</span>);
<a class="jxr_linenumber" name="L347" href="#L347">347</a>                         Assert.assertNotNull(pwd);
<a class="jxr_linenumber" name="L348" href="#L348">348</a>                         <em class="jxr_comment">//test for encryption</em>
<a class="jxr_linenumber" name="L349" href="#L349">349</a>                         <strong class="jxr_keyword">if</strong> (config.getBoolean(<span class="jxr_string">"juddi.mail.smtp.password"</span> + Property.ENCRYPTED_ATTRIBUTE, false))
<a class="jxr_linenumber" name="L350" href="#L350">350</a>                         {
<a class="jxr_linenumber" name="L351" href="#L351">351</a>                             String test=auth.decrypt(pwd);
<a class="jxr_linenumber" name="L352" href="#L352">352</a>                             Assert.assertEquals(test, <span class="jxr_string">"password"</span>);
<a class="jxr_linenumber" name="L353" href="#L353">353</a>                         }
<a class="jxr_linenumber" name="L354" href="#L354">354</a>                         <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L355" href="#L355">355</a>                         {
<a class="jxr_linenumber" name="L356" href="#L356">356</a>                             Assert.fail(<span class="jxr_string">"config reports that the setting is not encrypted"</span>);
<a class="jxr_linenumber" name="L357" href="#L357">357</a>                        }
<a class="jxr_linenumber" name="L358" href="#L358">358</a>                 }
<a class="jxr_linenumber" name="L359" href="#L359">359</a>                 <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="L360" href="#L360">360</a> 			logger.error(e.getMessage(),e);
<a class="jxr_linenumber" name="L361" href="#L361">361</a> 			Assert.fail(<span class="jxr_string">"unexpected"</span>);
<a class="jxr_linenumber" name="L362" href="#L362">362</a> 		}
<a class="jxr_linenumber" name="L363" href="#L363">363</a> 	}
<a class="jxr_linenumber" name="L364" href="#L364">364</a>         
<a class="jxr_linenumber" name="L365" href="#L365">365</a>         
<a class="jxr_linenumber" name="L366" href="#L366">366</a>         @Test
<a class="jxr_linenumber" name="L367" href="#L367">367</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testDecryptFromConfigXML_Disk_3DES() 
<a class="jxr_linenumber" name="L368" href="#L368">368</a> 	{
<a class="jxr_linenumber" name="L369" href="#L369">369</a>                 System.out.println(<span class="jxr_string">"testDecryptFromConfigXML_Disk_3DES"</span>);
<a class="jxr_linenumber" name="L370" href="#L370">370</a> 		<strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L371" href="#L371">371</a>                     File f = <strong class="jxr_keyword">new</strong> File(<span class="jxr_string">"."</span>);
<a class="jxr_linenumber" name="L372" href="#L372">372</a>                     System.out.println(<span class="jxr_string">"Current working dir is "</span> + f.getAbsolutePath());
<a class="jxr_linenumber" name="L373" href="#L373">373</a>                     System.setProperty(AppConfig.JUDDI_CONFIGURATION_FILE_SYSTEM_PROPERTY, f.getAbsolutePath() +<span class="jxr_string">"/src/test/resources/juddiv3-enc-3des.xml"</span>);
<a class="jxr_linenumber" name="L374" href="#L374">374</a>                     AppConfig.reloadConfig();
<a class="jxr_linenumber" name="L375" href="#L375">375</a>                     Configuration config =AppConfig.getConfiguration();
<a class="jxr_linenumber" name="L376" href="#L376">376</a>                     
<a class="jxr_linenumber" name="L377" href="#L377">377</a> 			Cryptor auth = <strong class="jxr_keyword">new</strong> TripleDESCrytor();
<a class="jxr_linenumber" name="L378" href="#L378">378</a>                         
<a class="jxr_linenumber" name="L379" href="#L379">379</a>                         <em class="jxr_comment">//retrieve it</em>
<a class="jxr_linenumber" name="L380" href="#L380">380</a>                         String pwd = config.getString(<span class="jxr_string">"juddi.mail.smtp.password"</span>);
<a class="jxr_linenumber" name="L381" href="#L381">381</a>                         Assert.assertNotNull(pwd);
<a class="jxr_linenumber" name="L382" href="#L382">382</a>                         <em class="jxr_comment">//test for encryption</em>
<a class="jxr_linenumber" name="L383" href="#L383">383</a>                         <strong class="jxr_keyword">if</strong> (config.getBoolean(<span class="jxr_string">"juddi.mail.smtp.password"</span> + Property.ENCRYPTED_ATTRIBUTE, false))
<a class="jxr_linenumber" name="L384" href="#L384">384</a>                         {
<a class="jxr_linenumber" name="L385" href="#L385">385</a>                             String test=auth.decrypt(pwd);
<a class="jxr_linenumber" name="L386" href="#L386">386</a>                             Assert.assertEquals(test, <span class="jxr_string">"password"</span>);
<a class="jxr_linenumber" name="L387" href="#L387">387</a>                         }
<a class="jxr_linenumber" name="L388" href="#L388">388</a>                         <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L389" href="#L389">389</a>                         {
<a class="jxr_linenumber" name="L390" href="#L390">390</a>                             Assert.fail(<span class="jxr_string">"config reports that the setting is not encrypted"</span>);
<a class="jxr_linenumber" name="L391" href="#L391">391</a>                        }
<a class="jxr_linenumber" name="L392" href="#L392">392</a>                 }
<a class="jxr_linenumber" name="L393" href="#L393">393</a>                 <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="L394" href="#L394">394</a> 			logger.error(e.getMessage(),e);
<a class="jxr_linenumber" name="L395" href="#L395">395</a> 			Assert.fail(<span class="jxr_string">"unexpected"</span>);
<a class="jxr_linenumber" name="L396" href="#L396">396</a> 		}
<a class="jxr_linenumber" name="L397" href="#L397">397</a> 	}
<a class="jxr_linenumber" name="L398" href="#L398">398</a>         
<a class="jxr_linenumber" name="L399" href="#L399">399</a>         
<a class="jxr_linenumber" name="L400" href="#L400">400</a>          @Test
<a class="jxr_linenumber" name="L401" href="#L401">401</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testDecryptFromConfigXML_Disk_AES128() 
<a class="jxr_linenumber" name="L402" href="#L402">402</a> 	{
<a class="jxr_linenumber" name="L403" href="#L403">403</a>                 System.out.println(<span class="jxr_string">"testDecryptFromConfigXML_Disk_AES128"</span>);
<a class="jxr_linenumber" name="L404" href="#L404">404</a> 		<strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L405" href="#L405">405</a>                     File f = <strong class="jxr_keyword">new</strong> File(<span class="jxr_string">"."</span>);
<a class="jxr_linenumber" name="L406" href="#L406">406</a>                     System.out.println(<span class="jxr_string">"Current working dir is "</span> + f.getAbsolutePath());
<a class="jxr_linenumber" name="L407" href="#L407">407</a>                     
<a class="jxr_linenumber" name="L408" href="#L408">408</a>                     System.setProperty(AppConfig.JUDDI_CONFIGURATION_FILE_SYSTEM_PROPERTY, f.getAbsolutePath() +<span class="jxr_string">"/src/test/resources/juddiv3-enc-aes128.xml"</span>);
<a class="jxr_linenumber" name="L409" href="#L409">409</a>                     AppConfig.reloadConfig();
<a class="jxr_linenumber" name="L410" href="#L410">410</a>                     Configuration config =AppConfig.getConfiguration();
<a class="jxr_linenumber" name="L411" href="#L411">411</a>                     
<a class="jxr_linenumber" name="L412" href="#L412">412</a> 			Cryptor auth = <strong class="jxr_keyword">new</strong> AES128Cryptor();
<a class="jxr_linenumber" name="L413" href="#L413">413</a>                         
<a class="jxr_linenumber" name="L414" href="#L414">414</a>                         <em class="jxr_comment">//retrieve it</em>
<a class="jxr_linenumber" name="L415" href="#L415">415</a>                         String pwd = config.getString(<span class="jxr_string">"juddi.mail.smtp.password"</span>);
<a class="jxr_linenumber" name="L416" href="#L416">416</a>                         Assert.assertNotNull(pwd);
<a class="jxr_linenumber" name="L417" href="#L417">417</a>                         <em class="jxr_comment">//test for encryption</em>
<a class="jxr_linenumber" name="L418" href="#L418">418</a>                         <strong class="jxr_keyword">if</strong> (config.getBoolean(<span class="jxr_string">"juddi.mail.smtp.password"</span> + Property.ENCRYPTED_ATTRIBUTE, false))
<a class="jxr_linenumber" name="L419" href="#L419">419</a>                         {
<a class="jxr_linenumber" name="L420" href="#L420">420</a>                             String test=auth.decrypt(pwd);
<a class="jxr_linenumber" name="L421" href="#L421">421</a>                             Assert.assertEquals(test, <span class="jxr_string">"password"</span>);
<a class="jxr_linenumber" name="L422" href="#L422">422</a>                         }
<a class="jxr_linenumber" name="L423" href="#L423">423</a>                         <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L424" href="#L424">424</a>                         {
<a class="jxr_linenumber" name="L425" href="#L425">425</a>                             Assert.fail(<span class="jxr_string">"config reports that the setting is not encrypted"</span>);
<a class="jxr_linenumber" name="L426" href="#L426">426</a>                        }
<a class="jxr_linenumber" name="L427" href="#L427">427</a>                 }
<a class="jxr_linenumber" name="L428" href="#L428">428</a>                 <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="L429" href="#L429">429</a> 			logger.error(e.getMessage(),e);
<a class="jxr_linenumber" name="L430" href="#L430">430</a> 			Assert.fail(<span class="jxr_string">"unexpected"</span>);
<a class="jxr_linenumber" name="L431" href="#L431">431</a> 		}
<a class="jxr_linenumber" name="L432" href="#L432">432</a> 	}
<a class="jxr_linenumber" name="L433" href="#L433">433</a>          
<a class="jxr_linenumber" name="L434" href="#L434">434</a>          
<a class="jxr_linenumber" name="L435" href="#L435">435</a>          
<a class="jxr_linenumber" name="L436" href="#L436">436</a>          @Test
<a class="jxr_linenumber" name="L437" href="#L437">437</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testDecryptFromConfigXML_Disk_AES256() 
<a class="jxr_linenumber" name="L438" href="#L438">438</a> 	{
<a class="jxr_linenumber" name="L439" href="#L439">439</a>                 System.out.println(<span class="jxr_string">"testDecryptFromConfigXML_Disk_AES256"</span>);
<a class="jxr_linenumber" name="L440" href="#L440">440</a> 		<strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L441" href="#L441">441</a>                     File f = <strong class="jxr_keyword">new</strong> File(<span class="jxr_string">"."</span>);
<a class="jxr_linenumber" name="L442" href="#L442">442</a>                     System.out.println(<span class="jxr_string">"Current working dir is "</span> + f.getAbsolutePath());
<a class="jxr_linenumber" name="L443" href="#L443">443</a>                     System.setProperty(AppConfig.JUDDI_CONFIGURATION_FILE_SYSTEM_PROPERTY, f.getAbsolutePath() + <span class="jxr_string">"/src/test/resources/juddiv3-enc-aes256.xml"</span>);
<a class="jxr_linenumber" name="L444" href="#L444">444</a>                     AppConfig.reloadConfig();
<a class="jxr_linenumber" name="L445" href="#L445">445</a>                     Configuration config =AppConfig.getConfiguration();
<a class="jxr_linenumber" name="L446" href="#L446">446</a>                     
<a class="jxr_linenumber" name="L447" href="#L447">447</a> 			Cryptor auth = <strong class="jxr_keyword">new</strong> AES256Cryptor();
<a class="jxr_linenumber" name="L448" href="#L448">448</a>                         
<a class="jxr_linenumber" name="L449" href="#L449">449</a>                         <em class="jxr_comment">//retrieve it</em>
<a class="jxr_linenumber" name="L450" href="#L450">450</a>                         String pwd = config.getString(<span class="jxr_string">"juddi.mail.smtp.password"</span>);
<a class="jxr_linenumber" name="L451" href="#L451">451</a>                         Assert.assertNotNull(pwd);
<a class="jxr_linenumber" name="L452" href="#L452">452</a>                         <em class="jxr_comment">//test for encryption</em>
<a class="jxr_linenumber" name="L453" href="#L453">453</a>                         <strong class="jxr_keyword">if</strong> (config.getBoolean(<span class="jxr_string">"juddi.mail.smtp.password"</span> + Property.ENCRYPTED_ATTRIBUTE, false))
<a class="jxr_linenumber" name="L454" href="#L454">454</a>                         {
<a class="jxr_linenumber" name="L455" href="#L455">455</a>                             String test=auth.decrypt(pwd);
<a class="jxr_linenumber" name="L456" href="#L456">456</a>                             Assert.assertEquals(test, <span class="jxr_string">"password"</span>);
<a class="jxr_linenumber" name="L457" href="#L457">457</a>                         }
<a class="jxr_linenumber" name="L458" href="#L458">458</a>                         <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L459" href="#L459">459</a>                         {
<a class="jxr_linenumber" name="L460" href="#L460">460</a>                             Assert.fail(<span class="jxr_string">"config reports that the setting is not encrypted"</span>);
<a class="jxr_linenumber" name="L461" href="#L461">461</a>                        }
<a class="jxr_linenumber" name="L462" href="#L462">462</a>                 } <strong class="jxr_keyword">catch</strong> (InvalidKeyException e)
<a class="jxr_linenumber" name="L463" href="#L463">463</a>                 {
<a class="jxr_linenumber" name="L464" href="#L464">464</a>                     logger.error(<span class="jxr_string">"Hey, you're probably using the Oracle JRE without the Unlimited Strength Java Crypto Extensions installed. AES256 won't work until you download and install it"</span>, e);
<a class="jxr_linenumber" name="L465" href="#L465">465</a> 		}
<a class="jxr_linenumber" name="L466" href="#L466">466</a>                 <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="L467" href="#L467">467</a> 			logger.error(e.getMessage(),e);
<a class="jxr_linenumber" name="L468" href="#L468">468</a> 			Assert.fail(<span class="jxr_string">"unexpected"</span>);
<a class="jxr_linenumber" name="L469" href="#L469">469</a> 		}
<a class="jxr_linenumber" name="L470" href="#L470">470</a> 	}
<a class="jxr_linenumber" name="L471" href="#L471">471</a> 
<a class="jxr_linenumber" name="L472" href="#L472">472</a> }
</pre>
<hr/>
<div id="footer">Copyright &#169; 2004&#x2013;2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</div>
</body>
</html>
