1 /**
2  * Licensed to the Apache Software Foundation (ASF) under one
3  * or more contributor license agreements.  See the NOTICE file
4  * distributed with this work for additional information
5  * regarding copyright ownership.  The ASF licenses this file
6  * to you under the Apache License, Version 2.0 (the
7  * "License"); you may not use this file except in compliance
8  * with the License.  You may obtain a copy of the License at
9  *
10  *     http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  */
18 package org.apache.hadoop.security.authorize;
19 
20 import java.security.Policy;
21 
22 import org.apache.hadoop.classification.InterfaceAudience;
23 import org.apache.hadoop.classification.InterfaceStability;
24 
25 /**
26  * {@link PolicyProvider} provides the {@link Service} definitions to the
27  * security {@link Policy} in effect for Hadoop.
28  *
29  */
30 @InterfaceAudience.LimitedPrivate({"HDFS", "MapReduce"})
31 @InterfaceStability.Evolving
32 public abstract class PolicyProvider {
33 
34   /**
35    * Configuration key for the {@link PolicyProvider} implementation.
36    */
37   public static final String POLICY_PROVIDER_CONFIG =
38     "hadoop.security.authorization.policyprovider";
39 
40   /**
41    * A default {@link PolicyProvider} without any defined services.
42    */
43   public static final PolicyProvider DEFAULT_POLICY_PROVIDER =
44     new PolicyProvider() {
45     @Override
46     public Service[] getServices() {
47       return null;
48     }
49   };
50 
51   /**
52    * Get the {@link Service} definitions from the {@link PolicyProvider}.
53    * @return the {@link Service} definitions
54    */
getServices()55   public abstract Service[] getServices();
56 }
57