# This is a ...

[x] bug report
[ ] feature request

# Detailed description

When running an `serverless-express` API in a lambda pushed to localstack in Docker, OPTIONS requests from a client with the `withCredentials` flag fail because of the wildcard `'*'` in `Access-Control-Allow-Origin` header returned by calling the endpoint (e.g.: `http://localhost:4566/restapis/<id>/<stage>/_user_request_/api/`). The request doesn't reach the lambda at all.

docker-compose.yml:
```yml

services:
  localstack:
    container_name: "${LOCALSTACK_DOCKER_NAME-localstack_main}"
    image: localstack/localstack:latest
    network_mode: bridge
    ports:
      - "4566:4566"
      - "4571:4571"
    environment:
      - DEFAULT_REGION=us-east-1
      - SERVICES=iam,lambda,apigateway,s3,ses,sts,sns,cloudformation,cloudwatch
      - DEBUG=1
      - DATA_DIR=/tmp/localstack/data
      - LAMBDA_EXECUTOR=docker-reuse
      - LAMBDA_REMOTE_DOCKER=0
      - KINESIS_ERROR_PROBABILITY=${KINESIS_ERROR_PROBABILITY- }
      - DOCKER_HOST=unix:///var/run/docker.sock
      - HOST_TMP_FOLDER=${PWD}/.localstack
      - LAMBDA_DOCKER_NETWORK=bridge
    volumes:
      - "${PWD}/.localstack:/tmp/localstack"
      - "/var/run/docker.sock:/var/run/docker.sock"

```

## Expected behavior

Allow defining a single(?) allowed origin for the header so that the preflight request doesn't fail.

## Actual behavior

Browser errors out with: 

```
Access to XMLHttpRequest at '<endpoint>' from origin 'http://localhost:8080' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: The value of the 'Access-Control-Allow-Origin' header in the response must not be the wildcard '*' when the request's credentials mode is 'include'. The credentials mode of requests initiated by the XMLHttpRequest is controlled by the withCredentials attribute.
```

# Steps to reproduce

- Create a simple API based on `serverless-express` with `express-session` as session handler.
- Use `withCredentials` flag to send requests to the API via `axios` or similar

## Command used to start LocalStack

`docker-compose up`

## Client code (AWS SDK code snippet, or sequence of "awslocal" commands)


return os.path.join(config.TMP_FOLDER, SERVER_CERT_PEM_FILE)
def start_proxy_server(port, forward_url=None, use_ssl=None, update_listener=None,
        quiet=False, params={}, asynchronous=True):
    def handler(request, data):
        parsed_url = urlparse(request.url)
        path_with_params = path_from_url(request.url)
        method = request.method
        headers = request.headers
        headers[HEADER_LOCALSTACK_REQUEST_URL] = str(request.url)
        request_handler = Mock()
        request_handler.proxy = Mock()
        request_handler.proxy.port = port
        response = modify_and_forward(method=method, path=path_with_params, data_bytes=data, headers=headers,
            forward_base_url=forward_url, listeners=[update_listener], request_handler=None,
            client_address=request.remote_addr, server_address=parsed_url.netloc)
        return response
    ssl_creds = (None, None)
    if use_ssl:
        _, cert_file_name, key_file_name = GenericProxy.create_ssl_cert(serial_number=port)
        ssl_creds = (cert_file_name, key_file_name)
    return http2_server.run_server(port, handler=handler, asynchronous=asynchronous, ssl_creds=ssl_creds)
def serve_flask_app(app, port, quiet=True, host=None, cors=True):