Esempio n. 1
0
 private void AddRenewAction(T webhdfs)
 {
     lock (this)
     {
         if (dtRenewer == null)
         {
             dtRenewer = DelegationTokenRenewer.GetInstance();
         }
         action = dtRenewer.AddRenewAction(webhdfs);
     }
 }
Esempio n. 2
0
        public virtual void TestRenewal()
        {
            Configuration conf = new Configuration();

            Org.Apache.Hadoop.Security.Token.Token <object> token1 = Org.Mockito.Mockito.Mock <
                Org.Apache.Hadoop.Security.Token.Token>();
            Org.Apache.Hadoop.Security.Token.Token <object> token2 = Org.Mockito.Mockito.Mock <
                Org.Apache.Hadoop.Security.Token.Token>();
            long renewCycle = 100;

            DelegationTokenRenewer.renewCycle = renewCycle;
            UserGroupInformation ugi = UserGroupInformation.CreateUserForTesting("foo", new string
                                                                                 [] { "bar" });

            TestTokenAspect.DummyFs fs = Org.Mockito.Mockito.Spy(new TestTokenAspect.DummyFs(
                                                                     ));
            Org.Mockito.Mockito.DoReturn(token1).DoReturn(token2).When(fs).GetDelegationToken
                (null);
            Org.Mockito.Mockito.DoReturn(token1).When(fs).GetRenewToken();
            // cause token renewer to abandon the token
            Org.Mockito.Mockito.DoThrow(new IOException("renew failed")).When(token1).Renew(conf
                                                                                            );
            Org.Mockito.Mockito.DoThrow(new IOException("get failed")).When(fs).AddDelegationTokens
                (null, null);
            URI uri = new URI("dummyfs://127.0.0.1:1234");
            TokenAspect <TestTokenAspect.DummyFs> tokenAspect = new TokenAspect <TestTokenAspect.DummyFs
                                                                                 >(fs, SecurityUtil.BuildTokenService(uri), TestTokenAspect.DummyFs.TokenKind);

            fs.Initialize(uri, conf);
            tokenAspect.InitDelegationToken(ugi);
            // trigger token acquisition
            tokenAspect.EnsureTokenInitialized();
            DelegationTokenRenewer.RenewAction <object> action = GetActionFromTokenAspect(tokenAspect
                                                                                          );
            Org.Mockito.Mockito.Verify(fs).SetDelegationToken(token1);
            NUnit.Framework.Assert.IsTrue(action.IsValid());
            // upon renewal, token will go bad based on above stubbing
            Sharpen.Thread.Sleep(renewCycle * 2);
            NUnit.Framework.Assert.AreSame(action, GetActionFromTokenAspect(tokenAspect));
            NUnit.Framework.Assert.IsFalse(action.IsValid());
            // now that token is invalid, should get a new one
            tokenAspect.EnsureTokenInitialized();
            Org.Mockito.Mockito.Verify(fs, Org.Mockito.Mockito.Times(2)).GetDelegationToken(Matchers.AnyString
                                                                                                ());
            Org.Mockito.Mockito.Verify(fs).SetDelegationToken(token2);
            NUnit.Framework.Assert.AreNotSame(action, GetActionFromTokenAspect(tokenAspect));
            action = GetActionFromTokenAspect(tokenAspect);
            NUnit.Framework.Assert.IsTrue(action.IsValid());
        }