diff --git a/.gitignore b/.gitignore
index d7e9d329517d61a5bc8614710b803afbcd882536..ce0aaf015693c03f1185e7896fb1c47cc235f43f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,3 +6,4 @@ src/generated
 gradle.properties
 /out
 /build
+InstanceSettings.xml
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index 9e8ad7bf943c0a8dd0200a9ba6a7cfac13dd95a4..078a4fedc8bb9a367c851fcb33ef818b09ca6198 100644
--- a/build.gradle
+++ b/build.gradle
@@ -8,13 +8,13 @@ def vEhcache = '2.6.11'
 def vJackson = '2.6.5'
 def vPostgreSQL = '9.4.1207'
 def vServletApi = '3.1.0'
-def vTomcat = '7.0.67'
+def vTomcat = '7.0.68'
 def vCargo = '1.4.18'
 def vSlf4j = '1.7.15'
 def vLog4j = '1.2.17'
 def vJunit = '4.12'
 def vSaxon = '9.1.0.8'
-def vGroovy = '2.4.5'
+def vGroovy = '2.4.6'
 def vJython = '2.7.0'
 
 group 'org.nrg.xnat'
@@ -24,11 +24,11 @@ buildscript {
     repositories {
         mavenLocal()
         maven {
-            url 'http://nrgxnat.artifactoryonline.com/nrgxnat/libs-release'
+            url 'https://nrgxnat.artifactoryonline.com/nrgxnat/libs-release'
             name 'XNAT Release Repository'
         }
         maven {
-            url 'http://nrgxnat.artifactoryonline.com/nrgxnat/libs-snapshot'
+            url 'https://nrgxnat.artifactoryonline.com/nrgxnat/libs-snapshot'
             name 'XNAT Snapshot Repository'
         }
         jcenter()
@@ -43,15 +43,15 @@ buildscript {
 repositories {
     mavenLocal()
     maven {
-        url 'http://nrgxnat.artifactoryonline.com/nrgxnat/libs-release'
+        url 'https://nrgxnat.artifactoryonline.com/nrgxnat/libs-release'
         name 'XNAT Release Repository'
     }
     maven {
-        url 'http://nrgxnat.artifactoryonline.com/nrgxnat/libs-snapshot'
+        url 'https://nrgxnat.artifactoryonline.com/nrgxnat/libs-snapshot'
         name 'XNAT Snapshot Repository'
     }
     maven {
-        url 'http://nrgxnat.artifactoryonline.com/nrgxnat/ext-release'
+        url 'https://nrgxnat.artifactoryonline.com/nrgxnat/ext-release'
         name 'XNAT External Release Repository'
     }
     maven {
@@ -347,9 +347,9 @@ publishing {
                 password propertyWithDefault('repoPassword', 'password')
             }
             if (project.version.endsWith('-SNAPSHOT')) {
-                url "http://nrgxnat.artifactoryonline.com/nrgxnat/libs-snapshot-local"
+                url "https://nrgxnat.artifactoryonline.com/nrgxnat/libs-snapshot-local"
             } else {
-                url "http://nrgxnat.artifactoryonline.com/nrgxnat/libs-release-local"
+                url "https://nrgxnat.artifactoryonline.com/nrgxnat/libs-release-local"
             }
         }
         ivy {
@@ -360,9 +360,9 @@ publishing {
                 password propertyWithDefault('repoPassword', 'password')
             }
             if (project.version.endsWith('-SNAPSHOT')) {
-                url "http://nrgxnat.artifactoryonline.com/nrgxnat/libs-snapshot-local"
+                url "https://nrgxnat.artifactoryonline.com/nrgxnat/libs-snapshot-local"
             } else {
-                url "http://nrgxnat.artifactoryonline.com/nrgxnat/libs-release-local"
+                url "https://nrgxnat.artifactoryonline.com/nrgxnat/libs-release-local"
             }
         }
     }
diff --git a/src/main/java/org/nrg/xapi/configuration/SwaggerConfig.java b/src/main/java/org/nrg/xapi/configuration/SwaggerConfig.java
deleted file mode 100644
index ff7ae3b96612d6f7e3006c0cd3ad993b88aa1f72..0000000000000000000000000000000000000000
--- a/src/main/java/org/nrg/xapi/configuration/SwaggerConfig.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package org.nrg.xapi.configuration;
-
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import springfox.documentation.builders.PathSelectors;
-import springfox.documentation.builders.RequestHandlerSelectors;
-import springfox.documentation.service.ApiInfo;
-import springfox.documentation.spi.DocumentationType;
-import springfox.documentation.spring.web.plugins.Docket;
-import springfox.documentation.swagger2.annotations.EnableSwagger2;
-
-@Configuration
-@EnableSwagger2
-public class SwaggerConfig {
-    @Bean
-    public Docket api() {
-        return new Docket(DocumentationType.SWAGGER_2)
-                .select()
-                .apis(RequestHandlerSelectors.basePackage("org.nrg.xapi.rest"))
-                .paths(PathSelectors.any())
-                .build()
-                .apiInfo(apiInfo());
-    }
-
-    private ApiInfo apiInfo() {
-        return new ApiInfo(
-                "XNAT POC API",
-                "This is the API for doing stuff with the XNAT POC application.",
-                "Don't be a bad person",
-                "http://www.xnat.org",
-                "info@xnat.org",
-                "Simplified 2-Clause BSD",
-                "API license URL");
-    }
-}
\ No newline at end of file
diff --git a/src/main/java/org/nrg/xapi/configuration/WebConfig.java b/src/main/java/org/nrg/xapi/configuration/WebConfig.java
index 47e3cd4b0b6ade80061e53d0dd4b9e628447effc..9090c6e5ecb3238a6d3f2f8983627eec37aba940 100644
--- a/src/main/java/org/nrg/xapi/configuration/WebConfig.java
+++ b/src/main/java/org/nrg/xapi/configuration/WebConfig.java
@@ -2,10 +2,6 @@ package org.nrg.xapi.configuration;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.BeansException;
-import org.springframework.beans.factory.InitializingBean;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.ApplicationContextAware;
 import org.springframework.context.MessageSource;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
@@ -17,11 +13,26 @@ import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
 import org.springframework.web.servlet.view.InternalResourceViewResolver;
 import org.springframework.web.servlet.view.JstlView;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.service.ApiInfo;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
 
 @Configuration
 @EnableWebMvc
+@EnableSwagger2
 @ComponentScan("org.nrg.xapi.rest")
-public class WebConfig extends WebMvcConfigurerAdapter implements ApplicationContextAware, InitializingBean {
+public class WebConfig extends WebMvcConfigurerAdapter {
+    @Override
+    public void addResourceHandlers(ResourceHandlerRegistry registry) {
+        registry.addResourceHandler("**/swagger-ui.html")
+                .addResourceLocations("classpath:/META-INF/resources/");
+        registry.addResourceHandler("/webjars/**")
+                .addResourceLocations("classpath:/META-INF/resources/webjars/");
+    }
+
     @Bean
     public ViewResolver viewResolver() {
         return new InternalResourceViewResolver() {{
@@ -33,31 +44,32 @@ public class WebConfig extends WebMvcConfigurerAdapter implements ApplicationCon
 
     @Bean
     public MessageSource messageSource() {
-        ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
-        messageSource.setBasename("messages");
-        return messageSource;
-    }
-
-    // Added to support Swagger requirements.
-    @Override
-    public void addResourceHandlers(ResourceHandlerRegistry registry) {
-        registry.addResourceHandler("swagger-ui.html")
-                .addResourceLocations("classpath:/META-INF/resources/");
-
-        registry.addResourceHandler("/webjars/**")
-                .addResourceLocations("classpath:/META-INF/resources/webjars/");
+        return new ResourceBundleMessageSource() {{
+            setBasename("messages");
+        }};
     }
 
-    @Override
-    public void setApplicationContext(final ApplicationContext context) throws BeansException {
-        _context = context;
+    @Bean
+    public Docket api() {
+        _log.debug("Initializing the Swagger Docket object");
+        return new Docket(DocumentationType.SWAGGER_2)
+                .select()
+                .apis(RequestHandlerSelectors.basePackage("org.nrg.xapi.rest"))
+                .paths(PathSelectors.any())
+                .build()
+                .apiInfo(apiInfo());
     }
 
-    @Override
-    public void afterPropertiesSet() throws Exception {
-        _log.debug(_context.getApplicationName());
+    private ApiInfo apiInfo() {
+        return new ApiInfo(
+                "XNAT REST API",
+                "The XNAT REST API (XAPI) functions provide remote programmatic access to XNAT internal functions.",
+                "1.7.0",
+                "http://www.xnat.org",
+                "info@xnat.org",
+                "Simplified 2-Clause BSD",
+                "API license URL");
     }
 
     private static final Logger _log = LoggerFactory.getLogger(WebConfig.class);
-    private ApplicationContext _context;
 }
\ No newline at end of file
diff --git a/src/main/java/org/nrg/xapi/model/Error.java b/src/main/java/org/nrg/xapi/model/Error.java
index 71213839a217931213f1474656758e9b1c287660..e00b871083d077c738aa554d7391d8e367c6eef3 100644
--- a/src/main/java/org/nrg/xapi/model/Error.java
+++ b/src/main/java/org/nrg/xapi/model/Error.java
@@ -3,55 +3,58 @@ package org.nrg.xapi.model;
 import io.swagger.annotations.*;
 import com.fasterxml.jackson.annotation.JsonProperty;
 
-@ApiModel(description = "")
-public class Error  {
-  
-  private Integer code = null;
-  private String message = null;
-  private String fields = null;
-
-  /**
-   **/
-  @ApiModelProperty(value = "")
-  @JsonProperty("code")
-  public Integer getCode() {
-    return code;
-  }
-  public void setCode(Integer code) {
-    this.code = code;
-  }
-
-  /**
-   **/
-  @ApiModelProperty(value = "")
-  @JsonProperty("message")
-  public String getMessage() {
-    return message;
-  }
-  public void setMessage(String message) {
-    this.message = message;
-  }
-
-  /**
-   **/
-  @ApiModelProperty(value = "")
-  @JsonProperty("fields")
-  public String getFields() {
-    return fields;
-  }
-  public void setFields(String fields) {
-    this.fields = fields;
-  }
-
-  @Override
-  public String toString()  {
-    StringBuilder sb = new StringBuilder();
-    sb.append("class Error {\n");
-    
-    sb.append("  code: ").append(code).append("\n");
-    sb.append("  message: ").append(message).append("\n");
-    sb.append("  fields: ").append(fields).append("\n");
-    sb.append("}\n");
-    return sb.toString();
-  }
+@ApiModel(value = "XAPI Error", description = "Provides the description of an error that occurred within the XAPI functions.")
+public class Error {
+    private Integer code    = null;
+    private String  message = null;
+    private String  fields  = null;
+
+    /**
+     * The code for the error. The meaning of the code is dependent on the context.
+     * @return The error code.
+     */
+    @ApiModelProperty(name = "Error Code", value = "The code for the error.", dataType = "java.lang.Integer", notes = "The meaning of this error code is dependent on the function where the error occurred.")
+    @JsonProperty("code")
+    public Integer getCode() {
+        return code;
+    }
+
+    public void setCode(Integer code) {
+        this.code = code;
+    }
+
+    /**
+     * A message associated with the error.
+     */
+    @ApiModelProperty(name = "Error Message", value = "A message indicating what the error was.", dataType = "java.lang.String")
+    @JsonProperty("message")
+    public String getMessage() {
+        return message;
+    }
+
+    public void setMessage(String message) {
+        this.message = message;
+    }
+
+    /**
+     * Indicates the fields of the data object that caused the error.
+     */
+    @ApiModelProperty(name = "Error Fields", value = "Indicates the fields of the data object that caused the error.", dataType = "java.lang.String")
+    @JsonProperty("fields")
+    public String getFields() {
+        return fields;
+    }
+
+    public void setFields(String fields) {
+        this.fields = fields;
+    }
+
+    @Override
+    public String toString() {
+        return "class Error {\n" +
+               "  code: " + code + "\n" +
+               "  message: " + message + "\n" +
+               "  fields: " + fields + "\n" +
+               "}\n";
+    }
 }
diff --git a/src/main/java/org/nrg/xapi/model/User.java b/src/main/java/org/nrg/xapi/model/users/User.java
similarity index 73%
rename from src/main/java/org/nrg/xapi/model/User.java
rename to src/main/java/org/nrg/xapi/model/users/User.java
index 6872c931a20ebf4e839b3532b1face3f7321c121..ae714c01c28daa5d6a1fbd542211510bcc597af5 100644
--- a/src/main/java/org/nrg/xapi/model/User.java
+++ b/src/main/java/org/nrg/xapi/model/users/User.java
@@ -1,4 +1,4 @@
-package org.nrg.xapi.model;
+package org.nrg.xapi.model.users;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonProperty;
@@ -24,10 +24,10 @@ public class User {
     public User(final UserI user) {
         _id = user.getID();
         _username = user.getUsername();
-        _firstname = user.getFirstname();
-        _lastname = user.getLastname();
+        _firstName = user.getFirstname();
+        _lastName = user.getLastname();
         _email = user.getEmail();
-        _isAdmin = (user instanceof XDATUser ? ((XDATUser) user).isSiteAdmin() : false);
+        _isAdmin = (user instanceof XDATUser && ((XDATUser) user).isSiteAdmin());
         _dbName = "";
         _password = "";
         _salt = "";
@@ -69,26 +69,28 @@ public class User {
      * The user's first name.
      **/
     @ApiModelProperty(value = "The user's first name.")
-    @JsonProperty("firstname")
-    public String getFirstname() {
-        return _firstname;
+    @JsonProperty("firstName")
+    public String getFirstName() {
+        return _firstName;
     }
 
-    public void setFirstname(String firstname) {
-        _firstname = firstname;
+    @SuppressWarnings("unused")
+    public void setFirstName(String firstName) {
+        _firstName = firstName;
     }
 
     /**
      * The user's last name.
      **/
     @ApiModelProperty(value = "The user's last name.")
-    @JsonProperty("lastname")
-    public String getLastname() {
-        return _lastname;
+    @JsonProperty("lastName")
+    public String getLastName() {
+        return _lastName;
     }
 
-    public void setLastname(String lastname) {
-        _lastname = lastname;
+    @SuppressWarnings("unused")
+    public void setLastName(String lastName) {
+        _lastName = lastName;
     }
 
     /**
@@ -126,6 +128,7 @@ public class User {
         return _dbName;
     }
 
+    @SuppressWarnings("unused")
     public void setDbName(String dbName) {
         _dbName = dbName;
     }
@@ -152,6 +155,7 @@ public class User {
         return _salt;
     }
 
+    @SuppressWarnings("unused")
     public void setSalt(String salt) {
         _salt = salt;
     }
@@ -178,22 +182,23 @@ public class User {
         return _authorization;
     }
 
+    @SuppressWarnings("unused")
     public void setAuthorization(UserAuth authorization) {
         _authorization = authorization;
     }
 
     @JsonIgnore
-    public String getFullname() {
-        return String.format("%s %s", getFirstname(), getLastname());
+    public String getFullName() {
+        return String.format("%s %s", getFirstName(), getLastName());
     }
 
     @JsonIgnore
-    public XdatUser getXDATUser(final UserI requestor) {
+    public XdatUser getXDATUser(final UserI requester) {
         final XdatUser user;
         if (StringUtils.isNotBlank(_username)) {
-            user = XDATUser.getXdatUsersByLogin(_username, requestor, true);
+            user = XDATUser.getXdatUsersByLogin(_username, requester, true);
         } else if (_id != null) {
-            user = AutoXdatUser.getXdatUsersByXdatUserId(_id, requestor, true);
+            user = AutoXdatUser.getXdatUsersByXdatUserId(_id, requester, true);
         } else {
             user = null;
         }
@@ -202,8 +207,8 @@ public class User {
         }
         final XDATUser newUser = new XDATUser();
         newUser.setLogin(_username);
-        newUser.setFirstname(_firstname);
-        newUser.setLastname(_lastname);
+        newUser.setFirstname(_firstName);
+        newUser.setLastname(_lastName);
         newUser.setEmail(_email);
         newUser.setPrimaryPassword(_password);
         newUser.setSalt(_salt);
@@ -212,28 +217,26 @@ public class User {
 
     @Override
     public String toString() {
-        StringBuilder sb = new StringBuilder();
-        sb.append("class User {\n");
-
-        sb.append("  id: ").append(_id).append("\n");
-        sb.append("  username: ").append(_username).append("\n");
-        sb.append("  firstname: ").append(_firstname).append("\n");
-        sb.append("  lastname: ").append(_lastname).append("\n");
-        sb.append("  email: ").append(_email).append("\n");
-        sb.append("  dbName: ").append(_dbName).append("\n");
-        sb.append("  password: ").append(_password).append("\n");
-        sb.append("  salt: ").append(_salt).append("\n");
-        sb.append("  lastModified: ").append(_lastModified).append("\n");
-        sb.append("  authorization: ").append(_authorization).append("\n");
-        sb.append("}\n");
-        return sb.toString();
-    }
-
-    private Integer _id = null;
-    private String _username = null;
-    private String _firstname = null;
-    private String _lastname = null;
-    private String _email = null;
+
+        return "class User {\n" +
+               "  id: " + _id + "\n" +
+               "  username: " + _username + "\n" +
+               "  firstName: " + _firstName + "\n" +
+               "  lastName: " + _lastName + "\n" +
+               "  email: " + _email + "\n" +
+               "  dbName: " + _dbName + "\n" +
+               "  password: " + _password + "\n" +
+               "  salt: " + _salt + "\n" +
+               "  lastModified: " + _lastModified + "\n" +
+               "  authorization: " + _authorization + "\n" +
+               "}\n";
+    }
+
+    private Integer _id        = null;
+    private String  _username  = null;
+    private String  _firstName = null;
+    private String  _lastName  = null;
+    private String  _email     = null;
     private boolean _isAdmin;
     private String _dbName = null;
     private String _password = null;
diff --git a/src/main/java/org/nrg/xapi/model/UserAuth.java b/src/main/java/org/nrg/xapi/model/users/UserAuth.java
similarity index 99%
rename from src/main/java/org/nrg/xapi/model/UserAuth.java
rename to src/main/java/org/nrg/xapi/model/users/UserAuth.java
index f4fe810078e01b583edd3c1ead62123048942ef8..0ad739ccd49e2a30d240bc565b47b635cab85492 100644
--- a/src/main/java/org/nrg/xapi/model/UserAuth.java
+++ b/src/main/java/org/nrg/xapi/model/users/UserAuth.java
@@ -1,4 +1,4 @@
-package org.nrg.xapi.model;
+package org.nrg.xapi.model.users;
 
 import java.util.Date;
 import java.util.*;
diff --git a/src/main/java/org/nrg/xapi/rest/UsersApi.java b/src/main/java/org/nrg/xapi/rest/users/UsersApi.java
similarity index 96%
rename from src/main/java/org/nrg/xapi/rest/UsersApi.java
rename to src/main/java/org/nrg/xapi/rest/users/UsersApi.java
index 95c0604fddde190f147a72e002284e3b4cb333f9..feb7cd73f1751b4a6b659a92da5f7558f11f02dd 100644
--- a/src/main/java/org/nrg/xapi/rest/UsersApi.java
+++ b/src/main/java/org/nrg/xapi/rest/users/UsersApi.java
@@ -1,8 +1,9 @@
-package org.nrg.xapi.rest;
+package org.nrg.xapi.rest.users;
 
 import io.swagger.annotations.*;
 import org.apache.commons.lang3.StringUtils;
-import org.nrg.xapi.model.User;
+import org.nrg.xapi.model.users.User;
+import org.nrg.xapi.rest.NotFoundException;
 import org.nrg.xdat.security.XDATUser;
 import org.nrg.xdat.security.helpers.Users;
 import org.nrg.xdat.security.user.exceptions.UserInitException;
@@ -22,7 +23,7 @@ import java.util.List;
 
 @Api(description = "The XNAT POC User Management API")
 @RestController
-@RequestMapping(value = "/api/users")
+@RequestMapping(value = "/users")
 public class UsersApi {
     private static final Logger _log = LoggerFactory.getLogger(UsersApi.class);
 
@@ -74,11 +75,11 @@ public class UsersApi {
         if (user == null) {
             return new ResponseEntity<>(HttpStatus.NOT_FOUND);
         }
-        if ((StringUtils.isNotBlank(model.getFirstname())) && (StringUtils.equals(model.getFirstname(), user.getFirstname()))) {
-            user.setFirstname(model.getFirstname());
+        if ((StringUtils.isNotBlank(model.getFirstName())) && (StringUtils.equals(model.getFirstName(), user.getFirstname()))) {
+            user.setFirstname(model.getFirstName());
         }
-        if ((StringUtils.isNotBlank(model.getLastname())) && (StringUtils.equals(model.getLastname(), user.getLastname()))) {
-            user.setLastname(model.getLastname());
+        if ((StringUtils.isNotBlank(model.getLastName())) && (StringUtils.equals(model.getLastName(), user.getLastname()))) {
+            user.setLastname(model.getLastName());
         }
         if ((StringUtils.isNotBlank(model.getEmail())) && (StringUtils.equals(model.getEmail(), user.getEmail()))) {
             user.setEmail(model.getEmail());
diff --git a/src/main/java/org/nrg/xnat/actions/postArchive/ClearStudyRoutingAction.java b/src/main/java/org/nrg/xnat/actions/postArchive/ClearStudyRoutingAction.java
index 4507b65703bff2b104c7ec4288bfc02b54f6cb5e..b48a19210c290f1a6aa9806e25f47773bafffaad 100644
--- a/src/main/java/org/nrg/xnat/actions/postArchive/ClearStudyRoutingAction.java
+++ b/src/main/java/org/nrg/xnat/actions/postArchive/ClearStudyRoutingAction.java
@@ -11,8 +11,6 @@ import org.nrg.xnat.archive.PrearcSessionArchiver;
 
 /**
  * ClearStudyRoutingAction class.
- *
- * @author Rick Herrick <rick.herrick@wustl.edu> on 10/28/2014.
  */
 @SuppressWarnings("unused")
 public class ClearStudyRoutingAction implements PrearcSessionArchiver.PostArchiveAction {
diff --git a/src/main/java/org/nrg/xnat/initialization/XnatWebAppInitializer.java b/src/main/java/org/nrg/xnat/initialization/XnatWebAppInitializer.java
index b0d1ce4f4e90ec1f10063a64faac811514264365..3e65a29e7ddddf017e2f7230ded9e4b1de792a19 100644
--- a/src/main/java/org/nrg/xnat/initialization/XnatWebAppInitializer.java
+++ b/src/main/java/org/nrg/xnat/initialization/XnatWebAppInitializer.java
@@ -39,7 +39,7 @@ public class XnatWebAppInitializer extends AbstractAnnotationConfigDispatcherSer
 
         // Now initialize everything else.
         context.addFilter("springSecurityFilterChain", DelegatingFilterProxy.class).addMappingForUrlPatterns(null, false, "/*");
-        context.addFilter("updateExpirationCookie", UpdateExpirationCookie.class);
+        context.addFilter("updateExpirationCookie", UpdateExpirationCookie.class).addMappingForUrlPatterns(null, false, "/*");
 
         context.addListener(XnatSessionEventPublisher.class);
         context.addListener(AxisHTTPSessionListener.class);
diff --git a/src/main/java/org/nrg/xnat/restlet/util/UpdateExpirationCookie.java b/src/main/java/org/nrg/xnat/restlet/util/UpdateExpirationCookie.java
index 691e8f06d2210e3c6d072ea63ef426efb372b09e..092ad2b598fe4327cfc991212ee8ce3ab4c661a8 100644
--- a/src/main/java/org/nrg/xnat/restlet/util/UpdateExpirationCookie.java
+++ b/src/main/java/org/nrg/xnat/restlet/util/UpdateExpirationCookie.java
@@ -10,6 +10,10 @@
  */
 package org.nrg.xnat.restlet.util;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.web.filter.GenericFilterBean;
+
 import javax.servlet.*;
 import javax.servlet.http.Cookie;
 import javax.servlet.http.HttpServletRequest;
@@ -17,27 +21,27 @@ import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.util.Date;
 
-public class UpdateExpirationCookie implements Filter {
-	public static String name = "SESSION_EXPIRATION_TIME";
-	
-
-	@Override
-	public void destroy() {}
-	@Override
-	public void doFilter(ServletRequest req, 
-						   ServletResponse resp,
-						   FilterChain chain) throws IOException, ServletException {
-		HttpServletRequest hq = (HttpServletRequest) req;
-		HttpServletResponse hr = (HttpServletResponse) resp;
-		int sessionIdleTime = hq.getSession().getMaxInactiveInterval();
-
-		Cookie c=new Cookie(name, ""+(new Date()).getTime()+","+((sessionIdleTime *1000))); 
-		c.setPath("/");
-		hr.addCookie(c);
-		
-		chain.doFilter(req,resp);
-	}
-	
-	@Override
-	public void init(FilterConfig fg) throws ServletException {}
+public class UpdateExpirationCookie extends GenericFilterBean {
+
+    public static String name = "SESSION_EXPIRATION_TIME";
+
+    @Override
+    public void doFilter(final ServletRequest req, final ServletResponse resp, final FilterChain chain) throws IOException, ServletException {
+        final HttpServletRequest  hq              = (HttpServletRequest) req;
+        final HttpServletResponse hr              = (HttpServletResponse) resp;
+        final int                 sessionIdleTime = hq.getSession().getMaxInactiveInterval();
+
+        final Cookie c = new Cookie(name, "" + (new Date()).getTime() + "," + ((sessionIdleTime * 1000)));
+        c.setPath("/");
+        hr.addCookie(c);
+
+        chain.doFilter(req, resp);
+    }
+
+    @Override
+    protected void initFilterBean() throws ServletException {
+        _log.debug("Initializing the UpdateExpirationCookie filter bean.");
+    }
+
+    private static final Logger _log = LoggerFactory.getLogger(UpdateExpirationCookie.class);
 }
diff --git a/src/main/webapp/WEB-INF/conf/InstanceSettings.xml b/src/main/webapp/WEB-INF/conf/InstanceSettings.xml.sample
similarity index 100%
rename from src/main/webapp/WEB-INF/conf/InstanceSettings.xml
rename to src/main/webapp/WEB-INF/conf/InstanceSettings.xml.sample