Make ident login plugin more robust.
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / auth / IdentLoginModule.java
index b831097ccd3d034729c16eab2026414077c9250f..ec6b5a30c196b77b7bde1ed4c10cb0f7e8568d31 100644 (file)
@@ -16,17 +16,17 @@ import org.apache.commons.logging.LogFactory;
 import org.argeo.cms.internal.kernel.Activator;
 import org.argeo.ident.IdentClient;
 
+/** Use an ident service to identify. */
 public class IdentLoginModule implements LoginModule {
        private final static Log log = LogFactory.getLog(IdentLoginModule.class);
 
-       private Subject subject = null;
        private CallbackHandler callbackHandler = null;
        private Map<String, Object> sharedState = null;
 
+       @SuppressWarnings("unchecked")
        @Override
        public void initialize(Subject subject, CallbackHandler callbackHandler, Map<String, ?> sharedState,
                        Map<String, ?> options) {
-               this.subject = subject;
                this.callbackHandler = callbackHandler;
                this.sharedState = (Map<String, Object>) sharedState;
        }
@@ -44,6 +44,8 @@ public class IdentLoginModule implements LoginModule {
                        return false;
                }
                HttpServletRequest request = httpCallback.getRequest();
+               if (request == null)
+                       return false;
                IdentClient identClient = Activator.getIdentClient(request.getRemoteAddr());
                if (identClient == null)
                        return false;