Impala
Impalaistheopensource,nativeanalyticdatabaseforApacheHadoop.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
AuthorizationStmt.java
Go to the documentation of this file.
1 // Copyright 2012 Cloudera Inc.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 package com.cloudera.impala.analysis;
16 
19 import com.google.common.base.Strings;
20 
25 public class AuthorizationStmt extends StatementBase {
26  // Set during analysis
27  protected User requestingUser_;
28 
29  @Override
30  public void analyze(Analyzer analyzer) throws AnalysisException {
31  if (!analyzer.getAuthzConfig().isEnabled()) {
32  throw new AnalysisException("Authorization is not enabled. To enable " +
33  "authorization restart Impala with the --server_name=<name> flag.");
34  }
35  if (analyzer.getAuthzConfig().isFileBasedPolicy()) {
36  throw new AnalysisException("Cannot execute authorization statement using a file" +
37  " based policy. To disable file based policies, restart Impala without the " +
38  "-authorization_policy_file flag set.");
39  }
40  if (Strings.isNullOrEmpty(analyzer.getUser().getName())) {
41  throw new AnalysisException("Cannot execute authorization statement with an " +
42  "empty username.");
43  }
44  requestingUser_ = analyzer.getUser();
45  }
46 }