]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.cms/src/org/argeo/cms/auth/AnonymousLoginModule.java
Massive package refactoring
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / auth / AnonymousLoginModule.java
index 12a0704158a22de18935fc101c966d02a47ed2a3..82873ad019db954f57059f60b8048d8c30a1d9ae 100644 (file)
@@ -1,30 +1,27 @@
 package org.argeo.cms.auth;
 
+import java.util.Locale;
 import java.util.Map;
 
 import javax.security.auth.Subject;
 import javax.security.auth.callback.CallbackHandler;
 import javax.security.auth.login.LoginException;
 import javax.security.auth.spi.LoginModule;
-import javax.servlet.http.HttpServletRequest;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.argeo.cms.CmsException;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.FrameworkUtil;
+import org.argeo.api.cms.CmsLog;
+import org.argeo.cms.internal.runtime.CmsContextImpl;
 import org.osgi.service.useradmin.Authorization;
 import org.osgi.service.useradmin.UserAdmin;
 
 /** Anonymous CMS user */
 public class AnonymousLoginModule implements LoginModule {
-       private final static Log log = LogFactory.getLog(AnonymousLoginModule.class);
+       private final static CmsLog log = CmsLog.getLog(AnonymousLoginModule.class);
 
        private Subject subject;
        private Map<String, Object> sharedState = null;
 
        // private state
-       private BundleContext bc;
+//     private BundleContext bc;
 
        @SuppressWarnings("unchecked")
        @Override
@@ -32,12 +29,12 @@ public class AnonymousLoginModule implements LoginModule {
                        Map<String, ?> options) {
                this.subject = subject;
                this.sharedState = (Map<String, Object>) sharedState;
-               try {
-                       bc = FrameworkUtil.getBundle(AnonymousLoginModule.class).getBundleContext();
-                       assert bc != null;
-               } catch (Exception e) {
-                       throw new CmsException("Cannot initialize login module", e);
-               }
+//             try {
+//                     bc = FrameworkUtil.getBundle(AnonymousLoginModule.class).getBundleContext();
+//                     assert bc != null;
+//             } catch (Exception e) {
+//                     throw new IllegalStateException("Cannot initialize login module", e);
+//             }
        }
 
        @Override
@@ -47,25 +44,28 @@ public class AnonymousLoginModule implements LoginModule {
 
        @Override
        public boolean commit() throws LoginException {
-               UserAdmin userAdmin = bc.getService(bc.getServiceReference(UserAdmin.class));
+               UserAdmin userAdmin = CmsContextImpl.getCmsContext().getUserAdmin();
                Authorization authorization = userAdmin.getAuthorization(null);
-               CmsAuthUtils.addAuthorization(subject, authorization,
-                               (HttpServletRequest) sharedState.get(CmsAuthUtils.SHARED_STATE_HTTP_REQUEST));
-               if (log.isDebugEnabled())
-                       log.debug("Anonymous logged in to CMS: " + subject);
+               RemoteAuthRequest request = (RemoteAuthRequest) sharedState.get(CmsAuthUtils.SHARED_STATE_HTTP_REQUEST);
+               Locale locale = Locale.getDefault();
+               if (request != null)
+                       locale = request.getLocale();
+               CmsAuthUtils.addAuthorization(subject, authorization);
+               CmsAuthUtils.registerSessionAuthorization(request, subject, authorization, locale);
+               if (log.isTraceEnabled())
+                       log.trace("Anonymous logged in to CMS: " + subject);
                return true;
        }
 
        @Override
        public boolean abort() throws LoginException {
-               // authorization = null;
                return true;
        }
 
        @Override
        public boolean logout() throws LoginException {
-               if (log.isDebugEnabled())
-                       log.debug("Logging out anonymous from CMS... " + subject);
+               if (log.isTraceEnabled())
+                       log.trace("Logging out anonymous from CMS... " + subject);
                CmsAuthUtils.cleanUp(subject);
                return true;
        }