Skip to content

A bundle that implements WSSE and awesome response types

License

Notifications You must be signed in to change notification settings

Happyr/ApiBundle

Repository files navigation

Happyr Api Bundle

Latest Version Software License Build Status Code Coverage Quality Score Total Downloads

To Install

Run the following in your project root, assuming you have composer set up for your project

composer require happyr/api-bundle

Add the bundle to app/AppKernel.php

$bundles = [
    // ...
    new Happyr\ApiBundle\HappyrApiBundle(),
];

Security

Wsse is built in and can be enabled - disabled by default.

To enable and configure it, in config.yml add

happyr_api:
    wsse:
        user_provider: "security.user.provider.concrete.in_memory"
        cache_service: "cache.provider.redis"
        lifetime: 300
        debug: false # Set to true to disable WSSE completely. You will always be authenticated. 

And in security.yml configure your provider where you store users to something like this

security:
    providers:
        in_memory:
            memory:
                users:
                    username:
                        password: password
                        roles: ['ROLE_API_USER']

And under firewalls in security.yml, add a new firewall like so

security:
    firewalls:
        main:
            pattern:   ^/api/
            stateless: true
            wsse:      true

Exception listener

Exception listener is enabled by default. It will catch uncaught exceptions and return formatted json response.

Here is an example configuration:

happyr_api:
  exception_listener:
    enabled: false # disables response listener 
    path_prefix: '/api/' # path prefix to enable listener on. By default its enabled for any path