+ private final Subject kernelSubject = new Subject();
+
+ public Kernel() {
+ URL url = getClass().getClassLoader().getResource(
+ KernelConstants.JAAS_CONFIG);
+ System.setProperty("java.security.auth.login.config",
+ url.toExternalForm());
+ try {
+ LoginContext kernelLc = new LoginContext(
+ KernelHeader.LOGIN_CONTEXT_SYSTEM, kernelSubject);
+ kernelLc.login();
+ } catch (LoginException e) {
+ throw new CmsException("Cannot log in kernel", e);
+ }
+ }
+
+ final void init() {
+ Subject.doAs(kernelSubject, new PrivilegedAction<Void>() {
+
+ @Override
+ public Void run() {
+ doInit();
+ return null;
+ }
+
+ });
+ }
+
+ private void doInit() {