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;
}
return false;
}
HttpServletRequest request = httpCallback.getRequest();
+ if (request == null)
+ return false;
IdentClient identClient = Activator.getIdentClient(request.getRemoteAddr());
if (identClient == null)
return false;
}
if (identUsername != null) {
if (log.isDebugEnabled())
- log.debug("Ident username: " + identUsername);
+ log.debug("Ident username: " + identUsername + " (local port: " + request.getLocalPort()
+ + ", remote port: " + request.getRemotePort() + ")");
sharedState.put(CmsAuthUtils.SHARED_STATE_NAME, identUsername);
sharedState.put(CmsAuthUtils.SHARED_STATE_REMOTE_ADDR, request.getRemoteAddr());
sharedState.put(CmsAuthUtils.SHARED_STATE_REMOTE_PORT, request.getRemotePort());