示例#1
0
        public void TestConnConfiguratior()
        {
            Uri u = new Uri("http://localhost");
            IList <HttpURLConnection> conns = Lists.NewArrayList();
            URLConnectionFactory      fc    = new URLConnectionFactory(new _ConnectionConfigurator_37
                                                                           (u, conns));

            fc.OpenConnection(u);
            NUnit.Framework.Assert.AreEqual(1, conns.Count);
        }
        public virtual void TestTokenCompatibilityFor203()
        {
            Configuration  conf = new Configuration();
            HftpFileSystem fs   = new HftpFileSystem();

            Org.Apache.Hadoop.Security.Token.Token <object> token = new Org.Apache.Hadoop.Security.Token.Token
                                                                    <TokenIdentifier>(new byte[0], new byte[0], DelegationTokenIdentifier.HdfsDelegationKind
                                                                                      , new Text("127.0.0.1:8020"));
            Credentials cred = new Credentials();

            cred.AddToken(HftpFileSystem.TokenKind, token);
            ByteArrayOutputStream os = new ByteArrayOutputStream();

            cred.Write(new DataOutputStream(os));
            HttpURLConnection conn = Org.Mockito.Mockito.Mock <HttpURLConnection>();

            Org.Mockito.Mockito.DoReturn(new ByteArrayInputStream(os.ToByteArray())).When(conn
                                                                                          ).GetInputStream();
            Org.Mockito.Mockito.DoReturn(HttpURLConnection.HttpOk).When(conn).GetResponseCode
                ();
            URLConnectionFactory factory = Org.Mockito.Mockito.Mock <URLConnectionFactory>();

            Org.Mockito.Mockito.DoReturn(conn).When(factory).OpenConnection(Org.Mockito.Mockito
                                                                            .Any <Uri>(), Matchers.AnyBoolean());
            URI uri = new URI("hftp://127.0.0.1:8020");

            fs.Initialize(uri, conf);
            fs.connectionFactory = factory;
            UserGroupInformation ugi = UserGroupInformation.CreateUserForTesting("foo", new string
                                                                                 [] { "bar" });
            TokenAspect <HftpFileSystem> tokenAspect = new TokenAspect <HftpFileSystem>(fs, SecurityUtil
                                                                                        .BuildTokenService(uri), HftpFileSystem.TokenKind);

            tokenAspect.InitDelegationToken(ugi);
            tokenAspect.EnsureTokenInitialized();
            NUnit.Framework.Assert.AreSame(HftpFileSystem.TokenKind, fs.GetRenewToken().GetKind
                                               ());
            Org.Apache.Hadoop.Security.Token.Token <object> tok = (Org.Apache.Hadoop.Security.Token.Token
                                                                   <object>)Whitebox.GetInternalState(fs, "delegationToken");
            NUnit.Framework.Assert.AreNotSame("Not making a copy of the remote token", token,
                                              tok);
            NUnit.Framework.Assert.AreEqual(token.GetKind(), tok.GetKind());
        }
示例#3
0
 /// <exception cref="System.IO.IOException"/>
 public override void Initialize(URI name, Configuration conf)
 {
     base.Initialize(name, conf);
     SetConf(conf);
     this.connectionFactory = URLConnectionFactory.NewDefaultURLConnectionFactory(conf
                                                                                  );
     this.ugi              = UserGroupInformation.GetCurrentUser();
     this.nnUri            = GetNamenodeUri(name);
     this.tokenServiceName = SecurityUtil.BuildTokenService(nnUri);
     try
     {
         this.hftpURI = new URI(name.GetScheme(), name.GetAuthority(), null, null, null);
     }
     catch (URISyntaxException e)
     {
         throw new ArgumentException(e);
     }
     InitTokenAspect();
     if (UserGroupInformation.IsSecurityEnabled())
     {
         tokenAspect.InitDelegationToken(ugi);
     }
 }
示例#4
0
 /// <exception cref="System.IO.IOException"/>
 internal RangeHeaderInputStream(URLConnectionFactory connFactory, Uri url)
     : this(new HftpFileSystem.RangeHeaderUrlOpener(connFactory, url), new HftpFileSystem.RangeHeaderUrlOpener
                (connFactory, null))
 {
 }
示例#5
0
 internal RangeHeaderUrlOpener(URLConnectionFactory connFactory, Uri url)
     : base(url)
 {
     this.connFactory = connFactory;
 }