From: Mathieu Baudier Date: Tue, 13 Sep 2016 11:18:11 +0000 (+0000) Subject: Fix issue with display name. X-Git-Tag: argeo-commons-2.1.45~4 X-Git-Url: https://git.argeo.org/?a=commitdiff_plain;h=7add600d7837fb72f019de190bd5cafd817a0a0c;p=lgpl%2Fargeo-commons.git Fix issue with display name. git-svn-id: https://svn.argeo.org/commons/trunk@9117 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- diff --git a/org.argeo.cms/src/org/argeo/cms/auth/NodeUserLoginModule.java b/org.argeo.cms/src/org/argeo/cms/auth/NodeUserLoginModule.java index 79714b16a..a4b7498da 100644 --- a/org.argeo.cms/src/org/argeo/cms/auth/NodeUserLoginModule.java +++ b/org.argeo.cms/src/org/argeo/cms/auth/NodeUserLoginModule.java @@ -124,12 +124,15 @@ public class NodeUserLoginModule implements LoginModule, AuthConstants { public boolean logout() throws LoginException { if (subject == null) throw new LoginException("Subject should not be null"); + // Clean up principals // Argeo subject.getPrincipals().removeAll(subject.getPrincipals(X500Principal.class)); subject.getPrincipals().removeAll(subject.getPrincipals(ImpliedByPrincipal.class)); // Jackrabbit subject.getPrincipals().removeAll(subject.getPrincipals(AdminPrincipal.class)); subject.getPrincipals().removeAll(subject.getPrincipals(AnonymousPrincipal.class)); + // Clean up private credentials + subject.getPrivateCredentials().clear(); cleanUp(); return true; } diff --git a/org.argeo.cms/src/org/argeo/cms/auth/UserAdminLoginModule.java b/org.argeo.cms/src/org/argeo/cms/auth/UserAdminLoginModule.java index d4c41022f..fa6f849af 100644 --- a/org.argeo.cms/src/org/argeo/cms/auth/UserAdminLoginModule.java +++ b/org.argeo.cms/src/org/argeo/cms/auth/UserAdminLoginModule.java @@ -25,16 +25,11 @@ import org.osgi.service.useradmin.User; import org.osgi.service.useradmin.UserAdmin; public class UserAdminLoginModule implements LoginModule, AuthConstants { - // private final static Log log = - // LogFactory.getLog(UserAdminLoginModule.class); - // - // private Subject subject; private CallbackHandler callbackHandler; private Map sharedState = null; private boolean isAnonymous = false; - // private HttpServletRequest request = null; private BundleContext bc; @SuppressWarnings("unchecked") @@ -61,7 +56,6 @@ public class UserAdminLoginModule implements LoginModule, AuthConstants { if (isAnonymous) { authorization = userAdmin.getAuthorization(null); } else { - // HttpRequestCallback httpCallback = new HttpRequestCallback(); // ask for username and password NameCallback nameCallback = new NameCallback("User"); PasswordCallback passwordCallback = new PasswordCallback("Password", false); @@ -76,10 +70,6 @@ public class UserAdminLoginModule implements LoginModule, AuthConstants { return false; } - // check http - // request = httpCallback.getRequest(); - // authorization = checkHttp(); - // i18n Locale locale = langCallback.getLocale(); if (locale == null) @@ -119,114 +109,21 @@ public class UserAdminLoginModule implements LoginModule, AuthConstants { } if (!sharedState.containsKey(SHARED_STATE_AUTHORIZATION)) sharedState.put(SHARED_STATE_AUTHORIZATION, authorization); - // subject.getPrivateCredentials().add(authorization); return true; } - // private Authorization checkHttp() { - // Authorization authorization = null; - // if (request != null) { - // authorization = (Authorization) - // request.getAttribute(HttpContext.AUTHORIZATION); - // if (authorization == null) { - // String sessionId = request.getSession().getId(); - // authorization = (Authorization) - // request.getSession().getAttribute(HttpContext.AUTHORIZATION); - // if (authorization == null) { - // Collection> sr; - // try { - // sr = bc.getServiceReferences(CmsSession.class, - // "(" + CmsSession.CMS_SESSION_ID + "=" + sessionId + ")"); - // } catch (InvalidSyntaxException e) { - // throw new CmsException("Cannot get CMS session for id " + sessionId, e); - // } - // if (sr.size() == 1) { - // CmsSession cmsSession = bc.getService(sr.iterator().next()); - // authorization = cmsSession.getAuthorization(); - // if (log.isTraceEnabled()) - // log.trace("Retrieved authorization from " + cmsSession); - // } - // } - // } - // } - // return authorization; - // } - @Override public boolean commit() throws LoginException { - // Authorization authorization = - // subject.getPrivateCredentials(Authorization.class).iterator().next(); - // if (request != null && authorization.getName() != null) { - // request.setAttribute(HttpContext.REMOTE_USER, - // authorization.getName()); - // request.setAttribute(HttpContext.AUTHORIZATION, authorization); - // - // HttpSession httpSession = request.getSession(); - // if (httpSession.getAttribute(HttpContext.AUTHORIZATION) == null) { - // - // String sessionId = request.getSession().getId(); - // Collection> sr; - // try { - // sr = bc.getServiceReferences(CmsSession.class, - // "(" + CmsSession.CMS_SESSION_ID + "=" + sessionId + ")"); - // } catch (InvalidSyntaxException e) { - // throw new CmsException("Cannot get CMS session for id " + sessionId, - // e); - // } - // CmsSession cmsSession; - // if (sr.size() == 1) { - // cmsSession = bc.getService(sr.iterator().next()); - // } else if (sr.size() == 0) { - // Hashtable props = new Hashtable<>(); - // props.put(CmsSession.CMS_DN, authorization.getName()); - // props.put(CmsSession.CMS_SESSION_ID, sessionId); - // cmsSession = new CmsSessionImpl(sessionId, authorization); - // bc.registerService(CmsSession.class, cmsSession, props); - // if (log.isDebugEnabled()) - // log.debug("Initialized " + cmsSession + " for " + - // authorization.getName()); - // } else - // throw new CmsException(sr.size() + " CMS sessions registered for " + - // sessionId); - // cmsSession.addHttpSession(request); - // if (log.isTraceEnabled()) - // log.trace("Added " + request.getServletPath() + " to " + cmsSession + - // " (" + request.getRequestURI() - // + ")"); - // httpSession.setAttribute(HttpContext.AUTHORIZATION, authorization); - // } - // subject.getPrivateCredentials().add(request.getSession()); - // } return true; } @Override public boolean abort() throws LoginException { - // cleanUp(); return true; } @Override public boolean logout() throws LoginException { - // Set httpSession = - // subject.getPrivateCredentials(HttpSession.class); - // Iterator it = httpSession.iterator(); - // while (it.hasNext()) { - // HttpSession sess = it.next(); - // sess.setAttribute(HttpContext.AUTHORIZATION, null); - // // sess.setMaxInactiveInterval(1);// invalidate session - // - // // TODO log out CMS session - // } - // subject.getPrivateCredentials().removeAll(httpSession); - // - // cleanUp(); return true; } - - // private void cleanUp() { - // subject.getPrivateCredentials().removeAll(subject.getPrivateCredentials(Authorization.class)); - // subject = null; - // } - } diff --git a/org.argeo.cms/src/org/argeo/cms/internal/kernel/WebCmsSessionImpl.java b/org.argeo.cms/src/org/argeo/cms/internal/kernel/WebCmsSessionImpl.java index f5203c940..ac4b35336 100644 --- a/org.argeo.cms/src/org/argeo/cms/internal/kernel/WebCmsSessionImpl.java +++ b/org.argeo.cms/src/org/argeo/cms/internal/kernel/WebCmsSessionImpl.java @@ -60,16 +60,16 @@ public class WebCmsSessionImpl implements WebCmsSession { static class SubHttpSession { private final HttpSession httpSession; private final String sessionId; - private final String originalURI; - private final String servletPath; +// private final String originalURI; +// private final String servletPath; private final Date start = new Date(); public SubHttpSession(HttpServletRequest request) { this.httpSession = request.getSession(); this.sessionId = httpSession.getId(); - this.originalURI = request.getRequestURI(); - this.servletPath = request.getServletPath(); +// this.originalURI = request.getRequestURI(); +// this.servletPath = request.getServletPath(); } public Date getStart() { @@ -79,7 +79,7 @@ public class WebCmsSessionImpl implements WebCmsSession { public void cleanUp() { try { httpSession.setAttribute(HttpContext.AUTHORIZATION, null); - httpSession.setMaxInactiveInterval(1); + //httpSession.setMaxInactiveInterval(1); } catch (Exception e) { log.warn("Could not clean up " + sessionId, e); }