killbill-memoizeit

tenant: fix regression in TenantFilter The tenant creation

1/14/2015 3:24:27 PM

Details

diff --git a/profiles/killbill/src/main/java/org/killbill/billing/server/security/TenantFilter.java b/profiles/killbill/src/main/java/org/killbill/billing/server/security/TenantFilter.java
index b65590f..00b7b49 100644
--- a/profiles/killbill/src/main/java/org/killbill/billing/server/security/TenantFilter.java
+++ b/profiles/killbill/src/main/java/org/killbill/billing/server/security/TenantFilter.java
@@ -84,12 +84,8 @@ public class TenantFilter implements Filter {
 
         // Multi-tenancy is enabled if this filter is installed, we can't continue without credentials
         if (apiKey == null || apiSecret == null) {
-            if (shouldContinueIfTenantInformationIsMissing(request)) {
-                chain.doFilter(request, response);
-            } else {
-                final String errorMessage = String.format("Make sure to set the %s and %s headers", JaxrsResource.HDR_API_KEY, JaxrsResource.HDR_API_SECRET);
-                sendAuthError(response, errorMessage);
-            }
+            final String errorMessage = String.format("Make sure to set the %s and %s headers", JaxrsResource.HDR_API_KEY, JaxrsResource.HDR_API_SECRET);
+            handleAuthenticationError(errorMessage, chain, request, response);
             return;
         }
 
@@ -99,7 +95,7 @@ public class TenantFilter implements Filter {
             modularRealmAuthenticator.authenticate(token);
         } catch (final AuthenticationException e) {
             final String errorMessage = e.getLocalizedMessage();
-            sendAuthError(response, errorMessage);
+            handleAuthenticationError(errorMessage, chain, request, response);
             return;
         }
 
@@ -115,11 +111,19 @@ public class TenantFilter implements Filter {
         }
     }
 
+    private void handleAuthenticationError(final String errorMessage, final FilterChain chain, final ServletRequest request, final ServletResponse response) throws IOException, ServletException {
+        if (shouldContinueIfTenantInformationIsWrongOrMissing(request)) {
+            chain.doFilter(request, response);
+        } else {
+            sendAuthError(response, errorMessage);
+        }
+    }
+
     @Override
     public void destroy() {
     }
 
-    private boolean shouldContinueIfTenantInformationIsMissing(final ServletRequest request) {
+    private boolean shouldContinueIfTenantInformationIsWrongOrMissing(final ServletRequest request) {
         boolean shouldContinue = false;
 
         if (request instanceof HttpServletRequest) {