protected void assertAuthorized(MidPointPrincipal principal, String action, AuthorizationPhaseType phase, Task task, OperationResult result) throws SchemaException, ObjectNotFoundException, ExpressionEvaluationException, CommunicationException, ConfigurationException, SecurityViolationException { SecurityContext origContext = SecurityContextHolder.getContext(); createSecurityContext(principal); try { assertTrue("AuthorizationEvaluator.isAuthorized: Principal "+principal+" NOT authorized for action "+action, securityEnforcer.isAuthorized(action, phase, AuthorizationParameters.EMPTY, null, task, result)); if (phase == null) { List<String> requiredActions = new ArrayList<>(1); requiredActions.add(action); securityEnforcer.decideAccess(getSecurityContextPrincipal(), requiredActions, task, result); } } finally { SecurityContextHolder.setContext(origContext); } }