1 31 32 package org.apache.commons.httpclient.auth; 33 34 import java.util.ArrayList ; 35 import java.util.HashMap ; 36 import java.util.List ; 37 import java.util.Map ; 38 39 import junit.framework.Test; 40 import junit.framework.TestCase; 41 import junit.framework.TestSuite; 42 43 import org.apache.commons.httpclient.params.DefaultHttpParams; 44 import org.apache.commons.httpclient.params.HttpParams; 45 46 51 public class TestChallengeProcessor extends TestCase { 52 53 public TestChallengeProcessor(String testName) { 55 super(testName); 56 } 57 58 public static void main(String args[]) { 60 String [] testCaseName = { TestChallengeProcessor.class.getName() }; 61 junit.textui.TestRunner.main(testCaseName); 62 } 63 64 66 public static Test suite() { 67 return new TestSuite(TestChallengeProcessor.class); 68 } 69 70 71 public void testChallengeSelection() throws Exception { 72 List authPrefs = new ArrayList (3); 73 authPrefs.add(AuthPolicy.NTLM); 74 authPrefs.add(AuthPolicy.DIGEST); 75 authPrefs.add(AuthPolicy.BASIC); 76 HttpParams httpparams = new DefaultHttpParams(); 77 httpparams.setParameter(AuthPolicy.AUTH_SCHEME_PRIORITY, authPrefs); 78 79 AuthChallengeProcessor processor = new AuthChallengeProcessor(httpparams); 80 81 Map map = new HashMap (); 82 map.put("unknown", "unknown realm=\"whatever\""); 83 map.put("basic", "basic realm=\"whatever\""); 84 85 AuthScheme authscheme = processor.selectAuthScheme(map); 86 assertTrue(authscheme instanceof BasicScheme); 87 } 88 89 90 public void testInvalidChallenge() throws Exception { 91 List authPrefs = new ArrayList (3); 92 authPrefs.add("unsupported1"); 93 authPrefs.add("unsupported2"); 94 HttpParams httpparams = new DefaultHttpParams(); 95 httpparams.setParameter(AuthPolicy.AUTH_SCHEME_PRIORITY, authPrefs); 96 97 AuthChallengeProcessor processor = new AuthChallengeProcessor(httpparams); 98 99 Map map = new HashMap (); 100 map.put("unsupported1", "unsupported1 realm=\"whatever\""); 101 map.put("unsupported2", "unsupported2 realm=\"whatever\""); 102 try { 103 AuthScheme authscheme = processor.selectAuthScheme(map); 104 fail("AuthChallengeException should have been thrown"); 105 } catch (AuthChallengeException e) { 106 } 108 } 109 110 111 public void testUnsupportedChallenge() throws Exception { 112 List authPrefs = new ArrayList (3); 113 authPrefs.add(AuthPolicy.NTLM); 114 authPrefs.add(AuthPolicy.BASIC); 115 authPrefs.add(AuthPolicy.DIGEST); 116 HttpParams httpparams = new DefaultHttpParams(); 117 httpparams.setParameter(AuthPolicy.AUTH_SCHEME_PRIORITY, authPrefs); 118 119 AuthChallengeProcessor processor = new AuthChallengeProcessor(httpparams); 120 121 Map map = new HashMap (); 122 map.put("unsupported1", "unsupported1 realm=\"whatever\""); 123 map.put("unsupported2", "unsupported2 realm=\"whatever\""); 124 125 try { 126 AuthScheme authscheme = processor.selectAuthScheme(map); 127 fail("AuthChallengeException should have been thrown"); 128 } catch (AuthChallengeException e) { 129 } 131 } 132 133 public void testChallengeProcessing() throws Exception { 134 HttpParams httpparams = new DefaultHttpParams(); 135 AuthChallengeProcessor processor = new AuthChallengeProcessor(httpparams); 136 137 Map map = new HashMap (); 138 map.put("basic", "basic realm=\"whatever\", param=\"value\""); 139 140 AuthState authstate = new AuthState(); 141 142 AuthScheme authscheme = processor.processChallenge(authstate, map); 143 assertTrue(authscheme instanceof BasicScheme); 144 assertEquals("whatever", authscheme.getRealm()); 145 assertEquals(authscheme, authstate.getAuthScheme()); 146 assertEquals("value", authscheme.getParameter("param")); 147 } 148 149 public void testInvalidChallengeProcessing() throws Exception { 150 HttpParams httpparams = new DefaultHttpParams(); 151 AuthChallengeProcessor processor = new AuthChallengeProcessor(httpparams); 152 153 Map map = new HashMap (); 154 map.put("basic", "basic realm=\"whatever\", param=\"value\""); 155 156 AuthState authstate = new AuthState(); 157 158 AuthScheme authscheme = processor.processChallenge(authstate, map); 159 assertTrue(authscheme instanceof BasicScheme); 160 assertEquals("whatever", authscheme.getRealm()); 161 assertEquals(authscheme, authstate.getAuthScheme()); 162 assertEquals("value", authscheme.getParameter("param")); 163 164 Map map2 = new HashMap (); 165 map2.put("ntlm", "NTLM"); 166 try { 167 authscheme = processor.processChallenge(authstate, map2); 169 fail("AuthenticationException should have been thrown"); 170 } catch (AuthenticationException e) { 171 } 173 } 174 } 175 | Popular Tags |