예제 #1
0
        public override void InitFilter(FilterContainer container, Configuration conf)
        {
            // setup the filter
            // use the keys with "yarn.timeline-service.http-cross-origin" prefix to
            // override the ones with the "hadoop.http.cross-origin" prefix.
            IDictionary <string, string> filterParameters = GetFilterParameters(conf, HttpCrossOriginFilterInitializer
                                                                                .Prefix);

            filterParameters.PutAll(GetFilterParameters(conf, GetPrefix()));
            container.AddGlobalFilter("Cross Origin Filter", typeof(CrossOriginFilter).FullName
                                      , filterParameters);
        }
        public override void InitFilter(FilterContainer container, Configuration conf)
        {
            string key     = GetEnabledConfigKey();
            bool   enabled = conf.GetBoolean(key, false);

            if (enabled)
            {
                container.AddGlobalFilter("Cross Origin Filter", typeof(CrossOriginFilter).FullName
                                          , GetFilterParameters(conf, GetPrefix()));
            }
            else
            {
                Log.Info("CORS filter not enabled. Please set " + key + " to 'true' to enable it"
                         );
            }
        }
        /// <summary>
        /// Initializes
        /// <see cref="TimelineAuthenticationFilter"/>
        /// <p>
        /// Propagates to
        /// <see cref="TimelineAuthenticationFilter"/>
        /// configuration all YARN
        /// configuration properties prefixed with
        /// <c>yarn.timeline-service.authentication.</c>
        /// </summary>
        /// <param name="container">The filter container</param>
        /// <param name="conf">Configuration for run-time parameters</param>
        public override void InitFilter(FilterContainer container, Configuration conf)
        {
            filterConfig = new Dictionary <string, string>();
            // setting the cookie path to root '/' so it is used for all resources.
            filterConfig[TimelineAuthenticationFilter.CookiePath] = "/";
            foreach (KeyValuePair <string, string> entry in conf)
            {
                string name = entry.Key;
                if (name.StartsWith(ProxyUsers.ConfHadoopProxyuser))
                {
                    string value = conf.Get(name);
                    name = Sharpen.Runtime.Substring(name, "hadoop.".Length);
                    filterConfig[name] = value;
                }
            }
            foreach (KeyValuePair <string, string> entry_1 in conf)
            {
                string name = entry_1.Key;
                if (name.StartsWith(Prefix))
                {
                    // yarn.timeline-service.http-authentication.proxyuser will override
                    // hadoop.proxyuser
                    string value = conf.Get(name);
                    name = Sharpen.Runtime.Substring(name, Prefix.Length);
                    filterConfig[name] = value;
                }
            }
            string authType = filterConfig[AuthenticationFilter.AuthType];

            if (authType.Equals(PseudoAuthenticationHandler.Type))
            {
                filterConfig[AuthenticationFilter.AuthType] = typeof(PseudoDelegationTokenAuthenticationHandler
                                                                     ).FullName;
            }
            else
            {
                if (authType.Equals(KerberosAuthenticationHandler.Type))
                {
                    filterConfig[AuthenticationFilter.AuthType] = typeof(KerberosDelegationTokenAuthenticationHandler
                                                                         ).FullName;
                    // Resolve _HOST into bind address
                    string bindAddress = conf.Get(HttpServer2.BindAddress);
                    string principal   = filterConfig[KerberosAuthenticationHandler.Principal];
                    if (principal != null)
                    {
                        try
                        {
                            principal = SecurityUtil.GetServerPrincipal(principal, bindAddress);
                        }
                        catch (IOException ex)
                        {
                            throw new RuntimeException("Could not resolve Kerberos principal name: " + ex.ToString
                                                           (), ex);
                        }
                        filterConfig[KerberosAuthenticationHandler.Principal] = principal;
                    }
                }
            }
            filterConfig[DelegationTokenAuthenticationHandler.TokenKind] = TimelineDelegationTokenIdentifier
                                                                           .KindName.ToString();
            container.AddGlobalFilter("Timeline Authentication Filter", typeof(TimelineAuthenticationFilter
                                                                               ).FullName, filterConfig);
        }
예제 #4
0
 public override void InitFilter(FilterContainer container, Configuration conf)
 {
     container.AddGlobalFilter("recording", typeof(TestGlobalFilter.RecordingFilter).FullName
                               , null);
 }