<!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=ISO-8859-1" />
<title>AbstractAuthenticatorTest xref</title>
<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
</head>
<body>
<pre>

<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
<a name="10" href="#10">10</a>  <em class="jxr_comment"> *     <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.shiro.authc;
<a name="20" href="#20">20</a>  
<a name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.Appender;
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.Layout;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.Logger;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.SimpleLayout;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.WriterAppender;
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.junit.Before;
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.junit.Test;
<a name="28" href="#28">28</a>  
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.io.ByteArrayOutputStream;
<a name="30" href="#30">30</a>  
<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.easymock.EasyMock.*;
<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.*;
<a name="33" href="#33">33</a>  
<a name="34" href="#34">34</a>  
<a name="35" href="#35">35</a>  <em class="jxr_javadoccomment">/**</em>
<a name="36" href="#36">36</a>  <em class="jxr_javadoccomment"> * @since 0.1</em>
<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment"> */</em>
<a name="38" href="#38">38</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/shiro/authc/AbstractAuthenticatorTest.html">AbstractAuthenticatorTest</a> {
<a name="39" href="#39">39</a>  
<a name="40" href="#40">40</a>      AbstractAuthenticator abstractAuthenticator;
<a name="41" href="#41">41</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> SimpleAuthenticationInfo info = <strong class="jxr_keyword">new</strong> SimpleAuthenticationInfo(<span class="jxr_string">"user1"</span>, <span class="jxr_string">"secret"</span>, <span class="jxr_string">"realmName"</span>);
<a name="42" href="#42">42</a>  
<a name="43" href="#43">43</a>      <strong class="jxr_keyword">private</strong> AbstractAuthenticator createAuthcReturnNull() {
<a name="44" href="#44">44</a>          <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> AbstractAuthenticator() {
<a name="45" href="#45">45</a>              <strong class="jxr_keyword">protected</strong> AuthenticationInfo doAuthenticate(AuthenticationToken token) <strong class="jxr_keyword">throws</strong> AuthenticationException {
<a name="46" href="#46">46</a>                  <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="47" href="#47">47</a>              }
<a name="48" href="#48">48</a>          };
<a name="49" href="#49">49</a>      }
<a name="50" href="#50">50</a>  
<a name="51" href="#51">51</a>      <strong class="jxr_keyword">private</strong> AbstractAuthenticator createAuthcReturnValidAuthcInfo() {
<a name="52" href="#52">52</a>          <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> AbstractAuthenticator() {
<a name="53" href="#53">53</a>              <strong class="jxr_keyword">protected</strong> AuthenticationInfo doAuthenticate(AuthenticationToken token) <strong class="jxr_keyword">throws</strong> AuthenticationException {
<a name="54" href="#54">54</a>                  <strong class="jxr_keyword">return</strong> info;
<a name="55" href="#55">55</a>              }
<a name="56" href="#56">56</a>          };
<a name="57" href="#57">57</a>      }
<a name="58" href="#58">58</a>  
<a name="59" href="#59">59</a>      <strong class="jxr_keyword">private</strong> AuthenticationToken newToken() {
<a name="60" href="#60">60</a>          <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> UsernamePasswordToken(<span class="jxr_string">"user1"</span>, <span class="jxr_string">"secret"</span>);
<a name="61" href="#61">61</a>      }
<a name="62" href="#62">62</a>  
<a name="63" href="#63">63</a>      @Before
<a name="64" href="#64">64</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setUp() {
<a name="65" href="#65">65</a>          abstractAuthenticator = createAuthcReturnValidAuthcInfo();
<a name="66" href="#66">66</a>      }
<a name="67" href="#67">67</a>  
<a name="68" href="#68">68</a>      @Test
<a name="69" href="#69">69</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> newAbstractAuthenticatorSecurityManagerConstructor() {
<a name="70" href="#70">70</a>          abstractAuthenticator = <strong class="jxr_keyword">new</strong> AbstractAuthenticator() {
<a name="71" href="#71">71</a>              <strong class="jxr_keyword">protected</strong> AuthenticationInfo doAuthenticate(AuthenticationToken token) <strong class="jxr_keyword">throws</strong> AuthenticationException {
<a name="72" href="#72">72</a>                  <strong class="jxr_keyword">return</strong> info;
<a name="73" href="#73">73</a>              }
<a name="74" href="#74">74</a>          };
<a name="75" href="#75">75</a>      }
<a name="76" href="#76">76</a>  
<a name="77" href="#77">77</a>  
<a name="78" href="#78">78</a>      <em class="jxr_javadoccomment">/**</em>
<a name="79" href="#79">79</a>  <em class="jxr_javadoccomment">     * Ensures that the authenticate() method proactively fails if a &lt;tt&gt;null&lt;/tt&gt; AuthenticationToken is passed as an</em>
<a name="80" href="#80">80</a>  <em class="jxr_javadoccomment">     * argument.</em>
<a name="81" href="#81">81</a>  <em class="jxr_javadoccomment">     */</em>
<a name="82" href="#82">82</a>      @Test(expected = IllegalArgumentException.<strong class="jxr_keyword">class</strong>)
<a name="83" href="#83">83</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> authenticateWithNullArgument() {
<a name="84" href="#84">84</a>          abstractAuthenticator.authenticate(<strong class="jxr_keyword">null</strong>);
<a name="85" href="#85">85</a>      }
<a name="86" href="#86">86</a>  
<a name="87" href="#87">87</a>      <em class="jxr_javadoccomment">/**</em>
<a name="88" href="#88">88</a>  <em class="jxr_javadoccomment">     * Ensures that the authenticate() method throws an AuthenticationException if the subclass returns &lt;tt&gt;null&lt;/tt&gt;</em>
<a name="89" href="#89">89</a>  <em class="jxr_javadoccomment">     * as the return value to the doAuthenticate() method.</em>
<a name="90" href="#90">90</a>  <em class="jxr_javadoccomment">     */</em>
<a name="91" href="#91">91</a>      @Test(expected = AuthenticationException.<strong class="jxr_keyword">class</strong>)
<a name="92" href="#92">92</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> throwAuthenticationExceptionIfDoAuthenticateReturnsNull() {
<a name="93" href="#93">93</a>          abstractAuthenticator = createAuthcReturnNull();
<a name="94" href="#94">94</a>          abstractAuthenticator.authenticate(newToken());
<a name="95" href="#95">95</a>      }
<a name="96" href="#96">96</a>  
<a name="97" href="#97">97</a>      <em class="jxr_javadoccomment">/**</em>
<a name="98" href="#98">98</a>  <em class="jxr_javadoccomment">     * Ensures a non-null &lt;tt&gt;Subject&lt;/tt&gt; instance is returned from the authenticate() method after a valid</em>
<a name="99" href="#99">99</a>  <em class="jxr_javadoccomment">     * authentication attempt (i.e. the subclass's doAuthenticate implementation returns a valid, non-null</em>
<a name="100" href="#100">100</a> <em class="jxr_javadoccomment">     * AuthenticationInfo object).</em>
<a name="101" href="#101">101</a> <em class="jxr_javadoccomment">     */</em>
<a name="102" href="#102">102</a>     @Test
<a name="103" href="#103">103</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> nonNullAuthenticationInfoAfterAuthenticate() {
<a name="104" href="#104">104</a>         AuthenticationInfo authcInfo = abstractAuthenticator.authenticate(newToken());
<a name="105" href="#105">105</a>         assertNotNull(authcInfo);
<a name="106" href="#106">106</a>     }
<a name="107" href="#107">107</a> 
<a name="108" href="#108">108</a>     @Test
<a name="109" href="#109">109</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> notifySuccessAfterDoAuthenticate() {
<a name="110" href="#110">110</a>         AuthenticationListener mockListener = createMock(AuthenticationListener.<strong class="jxr_keyword">class</strong>);
<a name="111" href="#111">111</a>         abstractAuthenticator.getAuthenticationListeners().add(mockListener);
<a name="112" href="#112">112</a>         AuthenticationToken token = newToken();
<a name="113" href="#113">113</a>         mockListener.onSuccess(token, info);
<a name="114" href="#114">114</a> 
<a name="115" href="#115">115</a>         replay(mockListener);
<a name="116" href="#116">116</a>         abstractAuthenticator.authenticate(token);
<a name="117" href="#117">117</a>         verify(mockListener);
<a name="118" href="#118">118</a>     }
<a name="119" href="#119">119</a> 
<a name="120" href="#120">120</a>     @Test
<a name="121" href="#121">121</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> notifyFailureAfterDoAuthenticateThrowsAuthenticationException() {
<a name="122" href="#122">122</a>         AuthenticationListener mockListener = createMock(AuthenticationListener.<strong class="jxr_keyword">class</strong>);
<a name="123" href="#123">123</a>         AuthenticationToken token = newToken();
<a name="124" href="#124">124</a> 
<a name="125" href="#125">125</a>         <strong class="jxr_keyword">final</strong> AuthenticationException ae = <strong class="jxr_keyword">new</strong> AuthenticationException(<span class="jxr_string">"dummy exception to test notification"</span>);
<a name="126" href="#126">126</a> 
<a name="127" href="#127">127</a>         abstractAuthenticator = <strong class="jxr_keyword">new</strong> AbstractAuthenticator() {
<a name="128" href="#128">128</a>             <strong class="jxr_keyword">protected</strong> AuthenticationInfo doAuthenticate(AuthenticationToken token) <strong class="jxr_keyword">throws</strong> AuthenticationException {
<a name="129" href="#129">129</a>                 <strong class="jxr_keyword">throw</strong> ae;
<a name="130" href="#130">130</a>             }
<a name="131" href="#131">131</a>         };
<a name="132" href="#132">132</a>         abstractAuthenticator.getAuthenticationListeners().add(mockListener);
<a name="133" href="#133">133</a> 
<a name="134" href="#134">134</a>         mockListener.onFailure(token, ae);
<a name="135" href="#135">135</a>         replay(mockListener);
<a name="136" href="#136">136</a> 
<a name="137" href="#137">137</a>         <strong class="jxr_keyword">boolean</strong> exceptionThrown = false;
<a name="138" href="#138">138</a>         <strong class="jxr_keyword">try</strong> {
<a name="139" href="#139">139</a>             abstractAuthenticator.authenticate(token);
<a name="140" href="#140">140</a>         } <strong class="jxr_keyword">catch</strong> (AuthenticationException e) {
<a name="141" href="#141">141</a>             exceptionThrown = <strong class="jxr_keyword">true</strong>;
<a name="142" href="#142">142</a>             assertEquals(e, ae);
<a name="143" href="#143">143</a>         }
<a name="144" href="#144">144</a>         verify(mockListener);
<a name="145" href="#145">145</a> 
<a name="146" href="#146">146</a>         <strong class="jxr_keyword">if</strong> (!exceptionThrown) {
<a name="147" href="#147">147</a>             fail(<span class="jxr_string">"An AuthenticationException should have been thrown during the notifyFailure test case."</span>);
<a name="148" href="#148">148</a>         }
<a name="149" href="#149">149</a>     }
<a name="150" href="#150">150</a> 
<a name="151" href="#151">151</a>     @Test(expected = AuthenticationException.<strong class="jxr_keyword">class</strong>)
<a name="152" href="#152">152</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> notifyFailureAfterDoAuthenticateThrowsNonAuthenticationException() {
<a name="153" href="#153">153</a>         abstractAuthenticator = <strong class="jxr_keyword">new</strong> AbstractAuthenticator() {
<a name="154" href="#154">154</a>             <strong class="jxr_keyword">protected</strong> AuthenticationInfo doAuthenticate(AuthenticationToken token) <strong class="jxr_keyword">throws</strong> AuthenticationException {
<a name="155" href="#155">155</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"not an AuthenticationException subclass"</span>);
<a name="156" href="#156">156</a>             }
<a name="157" href="#157">157</a>         };
<a name="158" href="#158">158</a>         AuthenticationToken token = newToken();
<a name="159" href="#159">159</a>         abstractAuthenticator.authenticate(token);
<a name="160" href="#160">160</a>     }
<a name="161" href="#161">161</a> 
<a name="162" href="#162">162</a>     @Test
<a name="163" href="#163">163</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> logExceptionAfterDoAuthenticateThrowsNonAuthenticationException() {
<a name="164" href="#164">164</a>         Logger logger = Logger.getLogger(AbstractAuthenticator.<strong class="jxr_keyword">class</strong>);
<a name="165" href="#165">165</a> 
<a name="166" href="#166">166</a>         <em class="jxr_comment">// NOTE: log4j is a test dependency</em>
<a name="167" href="#167">167</a>         ByteArrayOutputStream out = <strong class="jxr_keyword">new</strong> ByteArrayOutputStream();
<a name="168" href="#168">168</a>         Layout layout = <strong class="jxr_keyword">new</strong> SimpleLayout();
<a name="169" href="#169">169</a>         Appender appender = <strong class="jxr_keyword">new</strong> WriterAppender(layout, out);
<a name="170" href="#170">170</a>         logger.addAppender(appender);
<a name="171" href="#171">171</a> 
<a name="172" href="#172">172</a>         <strong class="jxr_keyword">final</strong> String expectedExceptionMessage = <span class="jxr_string">"exception thrown for test logExceptionAfterDoAuthenticateThrowsNonAuthenticationException"</span>;
<a name="173" href="#173">173</a> 
<a name="174" href="#174">174</a>         abstractAuthenticator = <strong class="jxr_keyword">new</strong> AbstractAuthenticator() {
<a name="175" href="#175">175</a>             <strong class="jxr_keyword">protected</strong> AuthenticationInfo doAuthenticate(AuthenticationToken token) <strong class="jxr_keyword">throws</strong> AuthenticationException {
<a name="176" href="#176">176</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(expectedExceptionMessage);
<a name="177" href="#177">177</a>             }
<a name="178" href="#178">178</a>         };
<a name="179" href="#179">179</a>         AuthenticationToken token = newToken();
<a name="180" href="#180">180</a> 
<a name="181" href="#181">181</a>         <strong class="jxr_keyword">try</strong>{
<a name="182" href="#182">182</a>             abstractAuthenticator.authenticate(token);
<a name="183" href="#183">183</a>             fail(<span class="jxr_string">"the expected AuthenticationException was not thrown"</span>);
<a name="184" href="#184">184</a>         }<strong class="jxr_keyword">catch</strong>(AuthenticationException expectedException){
<a name="185" href="#185">185</a>         }
<a name="186" href="#186">186</a> 
<a name="187" href="#187">187</a>         String logMsg = out.toString();
<a name="188" href="#188">188</a>         assertTrue(logMsg.contains(<span class="jxr_string">"WARN"</span>));
<a name="189" href="#189">189</a>         assertTrue(logMsg.contains(<span class="jxr_string">"java.lang.IllegalArgumentException: "</span>+ expectedExceptionMessage));
<a name="190" href="#190">190</a> 
<a name="191" href="#191">191</a>         logger.removeAppender(appender);
<a name="192" href="#192">192</a>     }
<a name="193" href="#193">193</a> 
<a name="194" href="#194">194</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>
