# 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)


@classmethod
    def create_ssl_cert(cls, serial_number=None):
        cert_pem_file = get_cert_pem_file_path()
        return generate_ssl_cert(cert_pem_file, serial_number=serial_number)
    @classmethod
    def get_flask_ssl_context(cls, serial_number=None):
        if config.USE_SSL:
            _, cert_file_name, key_file_name = cls.create_ssl_cert(serial_number=serial_number)
            return (cert_file_name, key_file_name)
        return None
async def _accept_connection2(self, protocol_factory, conn, extra, sslcontext, *args, **kwargs):
    is_ssl_socket = DuplexSocket.is_ssl_socket(conn)
    if is_ssl_socket is False:
        sslcontext = None
    result = await _accept_connection2_orig(self, protocol_factory, conn, extra, sslcontext, *args, **kwargs)
    return result
if hasattr(BaseSelectorEventLoop, '_accept_connection2') and not hasattr(BaseSelectorEventLoop, '_ls_patched'):
    _accept_connection2_orig = BaseSelectorEventLoop._accept_connection2
    BaseSelectorEventLoop._accept_connection2 = _accept_connection2
    BaseSelectorEventLoop._ls_patched = True
def get_cert_pem_file_path():