private void executeOnFailureHooks( HiveSemanticAnalyzerHookContext context, HiveOperation hiveOp, AuthorizationException e) { SentryOnFailureHookContext hookCtx = new SentryOnFailureHookContextImpl( context.getCommand(), context.getInputs(), context.getOutputs(), hiveOp, currDB, currTab, udfURI, null, context.getUserName(), context.getIpAddress(), e, context.getConf()); String csHooks = authzConf.get(HiveAuthzConf.AuthzConfVars.AUTHZ_ONFAILURE_HOOKS.getVar(), "").trim(); try { for (Hook aofh : getHooks(csHooks)) { ((SentryOnFailureHook) aofh).run(hookCtx); } } catch (Exception ex) { LOG.error("Error executing hook:", ex); } }
@BeforeClass public static void setup() throws Exception { haEnabled = true; properties = new HashMap<String, String>(); properties.put( HiveAuthzConf.AuthzConfVars.AUTHZ_ONFAILURE_HOOKS.getVar(), DummySentryOnFailureHook.class.getName()); createContext(); DummySentryOnFailureHook.invoked = false; // Do not run these tests if run with external HiveServer2 // This test checks for a static member, which will not // be set if HiveServer2 and the test run in different JVMs String hiveServer2Type = System.getProperty(HiveServerFactory.HIVESERVER2_TYPE); if (hiveServer2Type != null) { Assume.assumeTrue( HiveServerFactory.isInternalServer( HiveServerFactory.HiveServer2Type.valueOf(hiveServer2Type.trim()))); } }