docs: public static <T> T doAs(boolean inflowed, SecurityIdentity securityIdentity, InetAddress remoteAddress, PrivilegedExceptionAction<T> action)
              throws java.security.PrivilegedActionException {
          final AccessAuditContext previous = contextThreadLocal.get();
          try {
              contextThreadLocal.set(new AccessAuditContext(inflowed, securityIdentity, remoteAddress, previous));
              if (securityIdentity != null) {
                  return securityIdentity.runAs(action);
              } else try {
                  return action.run();
              } catch (RuntimeException e) {
                  throw e;
              } catch (Exception e) {
                  throw new PrivilegedActionException(e);
              }
          } finally {
              contextThreadLocal.set(previous);
          }
      }