- CmsAuthUtils.addAuthorization(subject, authorization,
- (HttpServletRequest) sharedState.get(CmsAuthUtils.SHARED_STATE_HTTP_REQUEST));
- if (log.isDebugEnabled())
- log.debug("Logged in to CMS: " + subject);
+ RemoteAuthRequest request = (RemoteAuthRequest) sharedState.get(CmsAuthUtils.SHARED_STATE_HTTP_REQUEST);
+ CmsAuthUtils.addAuthorization(subject, authorization);
+
+ // Unlock keyring (underlying login to the JCR repository)
+// char[] password = (char[]) sharedState.get(CmsAuthUtils.SHARED_STATE_PWD);
+// if (password != null) {
+// ServiceReference<CryptoKeyring> keyringSr = bc.getServiceReference(CryptoKeyring.class);
+// if (keyringSr != null) {
+// CryptoKeyring keyring = bc.getService(keyringSr);
+// Subject.doAs(subject, new PrivilegedAction<Void>() {
+//
+// @Override
+// public Void run() {
+// try {
+// keyring.unlock(password);
+// } catch (Exception e) {
+// e.printStackTrace();
+// log.warn("Could not unlock keyring with the password provided by " + authorization.getName()
+// + ": " + e.getMessage());
+// }
+// return null;
+// }
+//
+// });
+// }
+// }
+
+ // Register CmsSession with initial subject
+ CmsAuthUtils.registerSessionAuthorization(request, subject, authorization, locale);
+
+ if (log.isDebugEnabled()) {
+ StringBuilder msg = new StringBuilder();
+ msg.append("Logged in to CMS: '" + authorization + "' (" + authorization.getName() + ")\n");
+ if (log.isTraceEnabled()) {
+ for (Principal principal : subject.getPrincipals()) {
+ msg.append(" Principal: " + principal.getName()).append(" (")
+ .append(principal.getClass().getSimpleName()).append(")\n");
+ }
+ for (Object credential : subject.getPublicCredentials()) {
+ msg.append(" Public Credential: " + credential).append(" (")
+ .append(credential.getClass().getSimpleName()).append(")\n");
+ }
+ }
+ log.debug(msg);
+ }
+// if (log.isTraceEnabled())
+// log.trace(" Subject: " + subject);