The method Subject.doAs associates a Subject with
the thread of execution by associating a DomainCombiner with an AccessControlContext
and binding it to the execution thread by invoking AccessController.doPrivileged.
This ensures that the binding of the principals within the Subject is scoped
by the lifetime of the privileged action.