/// <exception cref="System.Exception"/>
        public virtual void TestRequestWithAuthorization()
        {
            string              token    = KerberosTestUtils.DoAsClient(new _Callable_225());
            HttpServletRequest  request  = Org.Mockito.Mockito.Mock <HttpServletRequest>();
            HttpServletResponse response = Org.Mockito.Mockito.Mock <HttpServletResponse>();

            Org.Mockito.Mockito.When(request.GetHeader(KerberosAuthenticator.Authorization)).
            ThenReturn(KerberosAuthenticator.Negotiate + " " + token);
            Org.Mockito.Mockito.When(request.GetServerName()).ThenReturn("localhost");
            AuthenticationToken authToken = handler.Authenticate(request, response);

            if (authToken != null)
            {
                Org.Mockito.Mockito.Verify(response).SetHeader(Org.Mockito.Mockito.Eq(KerberosAuthenticator
                                                                                      .WwwAuthenticate), Org.Mockito.Mockito.Matches(KerberosAuthenticator.Negotiate +
                                                                                                                                     " .*"));
                Org.Mockito.Mockito.Verify(response).SetStatus(HttpServletResponse.ScOk);
                Assert.Equal(KerberosTestUtils.GetClientPrincipal(), authToken
                             .GetName());
                Assert.True(KerberosTestUtils.GetClientPrincipal().StartsWith(authToken
                                                                              .GetUserName()));
                Assert.Equal(GetExpectedType(), authToken.GetType());
            }
            else
            {
                Org.Mockito.Mockito.Verify(response).SetHeader(Org.Mockito.Mockito.Eq(KerberosAuthenticator
                                                                                      .WwwAuthenticate), Org.Mockito.Mockito.Matches(KerberosAuthenticator.Negotiate +
                                                                                                                                     " .*"));
                Org.Mockito.Mockito.Verify(response).SetStatus(HttpServletResponse.ScUnauthorized
                                                               );
            }
        }
        public virtual void Setup()
        {
            // create keytab
            FilePath keytabFile      = new FilePath(KerberosTestUtils.GetKeytabFile());
            string   clientPrincipal = KerberosTestUtils.GetClientPrincipal();
            string   serverPrincipal = KerberosTestUtils.GetServerPrincipal();

            clientPrincipal = Runtime.Substring(clientPrincipal, 0, clientPrincipal.LastIndexOf
                                                    ("@"));
            serverPrincipal = Runtime.Substring(serverPrincipal, 0, serverPrincipal.LastIndexOf
                                                    ("@"));
            GetKdc().CreatePrincipal(keytabFile, clientPrincipal, serverPrincipal);
            // handler
            handler = GetNewAuthenticationHandler();
            Properties props = GetDefaultProperties();

            try
            {
                handler.Init(props);
            }
            catch (Exception ex)
            {
                handler = null;
                throw;
            }
        }
        public virtual void Setup()
        {
            // create keytab
            FilePath keytabFile      = new FilePath(KerberosTestUtils.GetKeytabFile());
            string   clientPrincipal = KerberosTestUtils.GetClientPrincipal();
            string   serverPrincipal = KerberosTestUtils.GetServerPrincipal();

            clientPrincipal = Runtime.Substring(clientPrincipal, 0, clientPrincipal.LastIndexOf
                                                    ("@"));
            serverPrincipal = Runtime.Substring(serverPrincipal, 0, serverPrincipal.LastIndexOf
                                                    ("@"));
            GetKdc().CreatePrincipal(keytabFile, clientPrincipal, serverPrincipal);
        }