diff --git a/src/main/java/org/nrg/xnat/restlet/extensions/AuthenticationRestlet.java b/src/main/java/org/nrg/xnat/restlet/extensions/AuthenticationRestlet.java index 5eeb09a19aa46d748f9d0981af176a241fbd35a2..cbd2dada77272f247ad4419a2e19cc80404195f6 100644 --- a/src/main/java/org/nrg/xnat/restlet/extensions/AuthenticationRestlet.java +++ b/src/main/java/org/nrg/xnat/restlet/extensions/AuthenticationRestlet.java @@ -14,6 +14,7 @@ import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nrg.xdat.XDAT; +import org.nrg.xft.XFT; import org.nrg.xnat.restlet.XnatRestlet; import org.nrg.xnat.security.XnatProviderManager; import org.restlet.Context; @@ -75,7 +76,7 @@ public class AuthenticationRestlet extends Resource { _log.debug("Passing a representation of the verify extensions restlet."); } - if (StringUtils.isBlank(_username) || StringUtils.isBlank(_password)) { + if (XFT.GetRequireLogin() && (StringUtils.isBlank(_username) || StringUtils.isBlank(_password))) { fail(); return; } diff --git a/src/main/java/org/nrg/xnat/restlet/resources/SecureResource.java b/src/main/java/org/nrg/xnat/restlet/resources/SecureResource.java index bbea23ef661161b13e926b35e95b7830b1b3e032..d83c4ee370ccf78e620a3a79d68b74b968826b66 100644 --- a/src/main/java/org/nrg/xnat/restlet/resources/SecureResource.java +++ b/src/main/java/org/nrg/xnat/restlet/resources/SecureResource.java @@ -28,6 +28,7 @@ import org.nrg.action.ServerException; import org.nrg.config.services.ConfigService; import org.nrg.framework.constants.Scope; import org.nrg.framework.exceptions.NrgServiceRuntimeException; +import org.nrg.framework.services.SerializerService; import org.nrg.framework.utilities.Reflection; import org.nrg.xdat.XDAT; import org.nrg.xdat.base.BaseElement; @@ -66,7 +67,6 @@ import org.nrg.xnat.restlet.representations.*; import org.nrg.xnat.restlet.util.FileWriterWrapperI; import org.nrg.xnat.restlet.util.RequestUtil; import org.nrg.xnat.turbine.utils.ArchivableItem; -import org.nrg.framework.services.SerializerService; import org.nrg.xnat.utils.WorkflowUtils; import org.restlet.Context; import org.restlet.data.*; @@ -151,7 +151,14 @@ public abstract class SecureResource extends Resource { // expects that the user exists in the session (either via traditional // session or set via the XnatSecureGuard user = XDAT.getUserDetails(); - + if(user==null && !XFT.GetRequireLogin()){ + try { + user = Users.getGuest(); + XDAT.setUserDetails(user); + } catch (Exception e) { + logger.error("",e); + } + } filepath = getRequest().getResourceRef().getRemainingPart(); if (filepath != null) { if (filepath.contains("?")) {