== Why is this an issue?

include::../description.adoc[]

=== Noncompliant code example

Flask

[source,python]
----
from flask import Response, request
from werkzeug.datastructures import Headers

@app.route('/route')
def route():
    content_type = request.args["Content-Type"]
    response = Response()
    headers = Headers()
    headers.add("Content-Type", content_type) # Noncompliant
    response.headers = headers
    return response
----

Django

[source,python]
----
import django.http

def route(request):
    content_type = request.GET.get("Content-Type")
    response = django.http.HttpResponse()
    response.__setitem__('Content-Type', content_type) # Noncompliant
    return response
----

=== Compliant solution

Flask

[source,python]
----
from flask import Response, request
from werkzeug.datastructures import Headers
import re

@app.route('/route')
def route():
    content_type = request.args["Content-Type"]    
    allowed_content_types = r'application/(pdf|json|xml)'    
    response = Response()    
    headers = Headers()    
    if re.match(allowed_content_types, content_type):        
        headers.add("Content-Type", content_type)  # Compliant    
    else:
        headers.add("Content-Type", "application/json")        
    response.headers = headers    
    return response
----
Django

[source,python]
----
import django.http
import re

def route(request):
    content_type = request.GET.get("Content-Type")
    allowed_content_types = r'application/(pdf|json|xml)' 
    response = django.http.HttpResponse() 
    if re.match(allowed_content_types, content_type): 
        response.__setitem__('Content-Type', content_type) # Compliant
    else:
        response.__setitem__('Content-Type', "application/json") 
    return response
----

include::../see.adoc[]

ifdef::env-github,rspecator-view[]

'''
== Implementation Specification
(visible only on this page)

include::../message.adoc[]

include::../highlighting.adoc[]

endif::env-github,rspecator-view[]
