Commit 34ebdbe1 authored by Cédric de Saint Martin's avatar Cédric de Saint Martin Committed by Kazuhiko Shiozaki

Sanitize inputs in apache recipe.

Avoid Nonetype-related errors.
parent ff6d5a06
...@@ -85,8 +85,20 @@ class Recipe(BaseSlapRecipe): ...@@ -85,8 +85,20 @@ class Recipe(BaseSlapRecipe):
domain_dict = {} domain_dict = {}
for slave_instance in slave_instance_list: for slave_instance in slave_instance_list:
# Sanitize inputs
backend_url = slave_instance.get("url", None) backend_url = slave_instance.get("url", None)
reference = slave_instance.get("slave_reference") reference = slave_instance.get("slave_reference")
if slave_instance.haskey("enable_cache"):
enable_cache = slave_instance.get("enable_cache", "").upper() in ('1', 'TRUE')
else:
enable_cache = False
if slave_instance.haskey("type"):
slave_type = slave_instance.get("type", "").lower()
else:
slave_type = None
# Set scheme (http? https?) # Set scheme (http? https?)
# Future work may allow to choose between http and https (or both?) # Future work may allow to choose between http and https (or both?)
scheme = 'http://' scheme = 'http://'
...@@ -120,7 +132,7 @@ class Recipe(BaseSlapRecipe): ...@@ -120,7 +132,7 @@ class Recipe(BaseSlapRecipe):
slave_dict[reference] = "%s%s/" % (scheme, domain) slave_dict[reference] = "%s%s/" % (scheme, domain)
# Check if we want varnish+stunnel cache. # Check if we want varnish+stunnel cache.
if slave_instance.get("enable_cache", "").upper() in ('1', 'TRUE'): if enable_cache:
# XXX-Cedric : need to refactor to clean code? (to many variables) # XXX-Cedric : need to refactor to clean code? (to many variables)
rewrite_rule = self.configureVarnishSlave( rewrite_rule = self.configureVarnishSlave(
base_varnish_port, backend_url, reference, service_dict, domain) base_varnish_port, backend_url, reference, service_dict, domain)
...@@ -134,8 +146,7 @@ class Recipe(BaseSlapRecipe): ...@@ -134,8 +146,7 @@ class Recipe(BaseSlapRecipe):
# rule structure. # rule structure.
# So we will have one RewriteMap for normal websites, and one # So we will have one RewriteMap for normal websites, and one
# RewriteMap for Zope Virtual Host Monster websites. # RewriteMap for Zope Virtual Host Monster websites.
if slave_instance.get("type") is not None and \ if slave_type in ['zope']:
slave_instance.get("type", "").lower() in ['zope']:
rewrite_rule_zope_list.append(rewrite_rule) rewrite_rule_zope_list.append(rewrite_rule)
# For Zope, we have another dict containing the path e.g '/erp5/... # For Zope, we have another dict containing the path e.g '/erp5/...
rewrite_rule_path = "%s %s" % (domain, slave_instance.get('path', '')) rewrite_rule_path = "%s %s" % (domain, slave_instance.get('path', ''))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment