<!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>JndiLdapRealmTest 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.realm.ldap;
<a name="20" href="#20">20</a>  
<a name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> org.apache.shiro.authc.AuthenticationException;
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.shiro.authc.AuthenticationToken;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.shiro.authc.UsernamePasswordToken;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.shiro.authc.credential.AllowAllCredentialsMatcher;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.junit.Before;
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.junit.Test;
<a name="27" href="#27">27</a>  
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> javax.naming.NamingException;
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> javax.naming.ldap.LdapContext;
<a name="30" href="#30">30</a>  
<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.util.UUID;
<a name="32" href="#32">32</a>  
<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.easymock.EasyMock.*;
<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.*;
<a name="35" href="#35">35</a>  
<a name="36" href="#36">36</a>  <em class="jxr_javadoccomment">/**</em>
<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment"> * Tests for the {@link JndiLdapRealm} class.</em>
<a name="38" href="#38">38</a>  <em class="jxr_javadoccomment"> *</em>
<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment"> * @since 1.1</em>
<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment"> */</em>
<a name="41" href="#41">41</a>  @SuppressWarnings({<span class="jxr_string">"ThrowableInstanceNeverThrown"</span>})
<a name="42" href="#42">42</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/shiro/realm/ldap/JndiLdapRealmTest.html">JndiLdapRealmTest</a> {
<a name="43" href="#43">43</a>  
<a name="44" href="#44">44</a>      <strong class="jxr_keyword">private</strong> JndiLdapRealm realm;
<a name="45" href="#45">45</a>  
<a name="46" href="#46">46</a>      @Before
<a name="47" href="#47">47</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setUp() {
<a name="48" href="#48">48</a>          realm = <strong class="jxr_keyword">new</strong> JndiLdapRealm();
<a name="49" href="#49">49</a>      }
<a name="50" href="#50">50</a>  
<a name="51" href="#51">51</a>      @Test
<a name="52" href="#52">52</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testDefaultInstance() {
<a name="53" href="#53">53</a>          assertTrue(realm.getCredentialsMatcher() instanceof AllowAllCredentialsMatcher);
<a name="54" href="#54">54</a>          assertEquals(AuthenticationToken.<strong class="jxr_keyword">class</strong>, realm.getAuthenticationTokenClass());
<a name="55" href="#55">55</a>          assertTrue(realm.getContextFactory() instanceof JndiLdapContextFactory);
<a name="56" href="#56">56</a>      }
<a name="57" href="#57">57</a>  
<a name="58" href="#58">58</a>      @Test(expected=IllegalArgumentException.<strong class="jxr_keyword">class</strong>)
<a name="59" href="#59">59</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSetUserDnTemplateNull() {
<a name="60" href="#60">60</a>          realm.setUserDnTemplate(<strong class="jxr_keyword">null</strong>);
<a name="61" href="#61">61</a>      }
<a name="62" href="#62">62</a>      
<a name="63" href="#63">63</a>      @Test(expected=IllegalArgumentException.<strong class="jxr_keyword">class</strong>)
<a name="64" href="#64">64</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSetUserDnTemplateEmpty() {
<a name="65" href="#65">65</a>          realm.setUserDnTemplate(<span class="jxr_string">"  "</span>);
<a name="66" href="#66">66</a>      }
<a name="67" href="#67">67</a>  
<a name="68" href="#68">68</a>      @Test(expected=IllegalArgumentException.<strong class="jxr_keyword">class</strong>)
<a name="69" href="#69">69</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSetUserDnTemplateWithoutToken() {
<a name="70" href="#70">70</a>          realm.setUserDnTemplate(<span class="jxr_string">"uid=,ou=users,dc=mycompany,dc=com"</span>);
<a name="71" href="#71">71</a>      }
<a name="72" href="#72">72</a>  
<a name="73" href="#73">73</a>      @Test
<a name="74" href="#74">74</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testUserDnTemplate() {
<a name="75" href="#75">75</a>          String template = <span class="jxr_string">"uid={0},ou=users,dc=mycompany,dc=com"</span>;
<a name="76" href="#76">76</a>          realm.setUserDnTemplate(template);
<a name="77" href="#77">77</a>          assertEquals(template, realm.getUserDnTemplate());
<a name="78" href="#78">78</a>      }
<a name="79" href="#79">79</a>  
<a name="80" href="#80">80</a>      @Test
<a name="81" href="#81">81</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testUserDnTemplateSubstitution() <strong class="jxr_keyword">throws</strong> NamingException {
<a name="82" href="#82">82</a>          realm.setUserDnTemplate(<span class="jxr_string">"uid={0},ou=users,dc=mycompany,dc=com"</span>);
<a name="83" href="#83">83</a>          LdapContextFactory factory = createMock(LdapContextFactory.<strong class="jxr_keyword">class</strong>);
<a name="84" href="#84">84</a>          realm.setContextFactory(factory);
<a name="85" href="#85">85</a>  
<a name="86" href="#86">86</a>          Object expectedPrincipal = <span class="jxr_string">"uid=jsmith,ou=users,dc=mycompany,dc=com"</span>;
<a name="87" href="#87">87</a>  
<a name="88" href="#88">88</a>          expect(factory.getLdapContext(eq(expectedPrincipal), isA(Object.<strong class="jxr_keyword">class</strong>))).andReturn(createNiceMock(LdapContext.<strong class="jxr_keyword">class</strong>));
<a name="89" href="#89">89</a>          replay(factory);
<a name="90" href="#90">90</a>  
<a name="91" href="#91">91</a>          realm.getAuthenticationInfo(<strong class="jxr_keyword">new</strong> UsernamePasswordToken(<span class="jxr_string">"jsmith"</span>, <span class="jxr_string">"secret"</span>) );
<a name="92" href="#92">92</a>          verify(factory);
<a name="93" href="#93">93</a>      }
<a name="94" href="#94">94</a>  
<a name="95" href="#95">95</a>      @Test(expected= AuthenticationException.<strong class="jxr_keyword">class</strong>)
<a name="96" href="#96">96</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetAuthenticationInfoNamingAuthenticationException() <strong class="jxr_keyword">throws</strong> NamingException {
<a name="97" href="#97">97</a>          realm.setUserDnTemplate(<span class="jxr_string">"uid={0},ou=users,dc=mycompany,dc=com"</span>);
<a name="98" href="#98">98</a>          LdapContextFactory factory = createMock(LdapContextFactory.<strong class="jxr_keyword">class</strong>);
<a name="99" href="#99">99</a>          realm.setContextFactory(factory);
<a name="100" href="#100">100</a> 
<a name="101" href="#101">101</a>         expect(factory.getLdapContext(isA(Object.<strong class="jxr_keyword">class</strong>), isA(Object.<strong class="jxr_keyword">class</strong>)))
<a name="102" href="#102">102</a>                 .andThrow(<strong class="jxr_keyword">new</strong> javax.naming.AuthenticationException(<span class="jxr_string">"LDAP Authentication failed."</span>));
<a name="103" href="#103">103</a>         replay(factory);
<a name="104" href="#104">104</a> 
<a name="105" href="#105">105</a>         realm.getAuthenticationInfo(<strong class="jxr_keyword">new</strong> UsernamePasswordToken(<span class="jxr_string">"jsmith"</span>, <span class="jxr_string">"secret"</span>) );
<a name="106" href="#106">106</a>     }
<a name="107" href="#107">107</a> 
<a name="108" href="#108">108</a>     @Test(expected= AuthenticationException.<strong class="jxr_keyword">class</strong>)
<a name="109" href="#109">109</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetAuthenticationInfoNamingException() <strong class="jxr_keyword">throws</strong> NamingException {
<a name="110" href="#110">110</a>         realm.setUserDnTemplate(<span class="jxr_string">"uid={0},ou=users,dc=mycompany,dc=com"</span>);
<a name="111" href="#111">111</a>         LdapContextFactory factory = createMock(LdapContextFactory.<strong class="jxr_keyword">class</strong>);
<a name="112" href="#112">112</a>         realm.setContextFactory(factory);
<a name="113" href="#113">113</a> 
<a name="114" href="#114">114</a>         expect(factory.getLdapContext(isA(Object.<strong class="jxr_keyword">class</strong>), isA(Object.<strong class="jxr_keyword">class</strong>)))
<a name="115" href="#115">115</a>                 .andThrow(<strong class="jxr_keyword">new</strong> NamingException(<span class="jxr_string">"Communication error."</span>));
<a name="116" href="#116">116</a>         replay(factory);
<a name="117" href="#117">117</a> 
<a name="118" href="#118">118</a>         realm.getAuthenticationInfo(<strong class="jxr_keyword">new</strong> UsernamePasswordToken(<span class="jxr_string">"jsmith"</span>, <span class="jxr_string">"secret"</span>) );
<a name="119" href="#119">119</a>     }
<a name="120" href="#120">120</a> 
<a name="121" href="#121">121</a>     <em class="jxr_javadoccomment">/**</em>
<a name="122" href="#122">122</a> <em class="jxr_javadoccomment">     * This test simulates that if a non-String principal (i.e. not a username) is passed as the LDAP principal, that</em>
<a name="123" href="#123">123</a> <em class="jxr_javadoccomment">     * it is not altered into a User DN and is passed as-is.  This will allow principals to be things like X.509</em>
<a name="124" href="#124">124</a> <em class="jxr_javadoccomment">     * certificates as well instead of only strings.</em>
<a name="125" href="#125">125</a> <em class="jxr_javadoccomment">     *</em>
<a name="126" href="#126">126</a> <em class="jxr_javadoccomment">     * @throws NamingException not thrown</em>
<a name="127" href="#127">127</a> <em class="jxr_javadoccomment">     */</em>
<a name="128" href="#128">128</a>     @Test
<a name="129" href="#129">129</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetAuthenticationInfoNonSimpleToken() <strong class="jxr_keyword">throws</strong> NamingException {
<a name="130" href="#130">130</a>         realm.setUserDnTemplate(<span class="jxr_string">"uid={0},ou=users,dc=mycompany,dc=com"</span>);
<a name="131" href="#131">131</a>         LdapContextFactory factory = createMock(LdapContextFactory.<strong class="jxr_keyword">class</strong>);
<a name="132" href="#132">132</a>         realm.setContextFactory(factory);
<a name="133" href="#133">133</a> 
<a name="134" href="#134">134</a>         <strong class="jxr_keyword">final</strong> UUID userId = UUID.randomUUID();
<a name="135" href="#135">135</a> 
<a name="136" href="#136">136</a>         <em class="jxr_comment">//ensure the userId is passed as-is:</em>
<a name="137" href="#137">137</a>         expect(factory.getLdapContext(eq(userId), isA(Object.<strong class="jxr_keyword">class</strong>))).andReturn(createNiceMock(LdapContext.<strong class="jxr_keyword">class</strong>));
<a name="138" href="#138">138</a>         replay(factory);
<a name="139" href="#139">139</a> 
<a name="140" href="#140">140</a>         realm.getAuthenticationInfo(<strong class="jxr_keyword">new</strong> AuthenticationToken() {
<a name="141" href="#141">141</a>             <strong class="jxr_keyword">public</strong> Object getPrincipal() {
<a name="142" href="#142">142</a>                 <strong class="jxr_keyword">return</strong> userId;
<a name="143" href="#143">143</a>             }
<a name="144" href="#144">144</a> 
<a name="145" href="#145">145</a>             <strong class="jxr_keyword">public</strong> Object getCredentials() {
<a name="146" href="#146">146</a>                 <strong class="jxr_keyword">return</strong> <span class="jxr_string">"secret"</span>;
<a name="147" href="#147">147</a>             }
<a name="148" href="#148">148</a>         });
<a name="149" href="#149">149</a>         verify(factory);
<a name="150" href="#150">150</a>     }
<a name="151" href="#151">151</a> 
<a name="152" href="#152">152</a>     @Test(expected=IllegalArgumentException.<strong class="jxr_keyword">class</strong>)
<a name="153" href="#153">153</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetUserDnNullArgument() {
<a name="154" href="#154">154</a>         realm.getUserDn(<strong class="jxr_keyword">null</strong>);
<a name="155" href="#155">155</a>     }
<a name="156" href="#156">156</a> 
<a name="157" href="#157">157</a>     @Test
<a name="158" href="#158">158</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetUserDnWithOutPrefixAndSuffix() {
<a name="159" href="#159">159</a>         realm = <strong class="jxr_keyword">new</strong> JndiLdapRealm() {
<a name="160" href="#160">160</a>             @Override
<a name="161" href="#161">161</a>             <strong class="jxr_keyword">protected</strong> String getUserDnPrefix() {
<a name="162" href="#162">162</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="163" href="#163">163</a>             }
<a name="164" href="#164">164</a> 
<a name="165" href="#165">165</a>             @Override
<a name="166" href="#166">166</a>             <strong class="jxr_keyword">protected</strong> String getUserDnSuffix() {
<a name="167" href="#167">167</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="168" href="#168">168</a>             }
<a name="169" href="#169">169</a>         };
<a name="170" href="#170">170</a>         String principal = <span class="jxr_string">"foo"</span>;
<a name="171" href="#171">171</a>         String userDn = realm.getUserDn(principal);
<a name="172" href="#172">172</a>         assertEquals(principal, userDn);
<a name="173" href="#173">173</a>     }
<a name="174" href="#174">174</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>
