New:Introducing Socket Scanning for VS Code Marketplace Extensions.Learn more →
Get Started

adaniloff/kong-user-bundle

Package Overview
Dependencies
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

adaniloff/kong-user-bundle

A little package to help you integrate the Kong solution.

package
Source
Packagist
This package is abandoned and is no longer maintained.
The author recommends using true instead.
This version has been yanked by its maintainers and should not be used.
Version
v1.0.3
Version published
Total downloads
320
Maintainers
1
Created
Source

KongUserBundle

A tool to make it easier to implement the Kong CE solution on a Symfony project

Dependencies

  • PHP >= 7.1
  • Symfony 3.4.*
  • Guzzle Client ^7.2

Installation

You'll be able to get the package with the following command composer require adaniloff/kong-user-bundle.

Then follow these steps:

<?php
/** In AppKernel */
$bundles = [
    // add the following line
    new \Adaniloff\KongUserBundle\AdaniloffKongUserBundle(),
];

Configure a guzzle client:

# in app/config/config.yml
eight_points_guzzle:
    clients:
        api_kong:
            # The admin base url, port included ; it will be defined later
            base_url: '%kong_user.host%'
            options:
                headers:
                    Accept: 'application/json'
                    Content-type: 'application/json'

Update your security config:

# in app/config/security.yml
security:
    providers:
        # add this provider
        kong_user:
            id: Adaniloff\KongUserBundle\Security\KongUserProvider

    firewalls:
        main:
            guard:
                # add this authenticator 
                authenticators:
                    - Adaniloff\KongUserBundle\Security\KongAuthenticator

And add the bundle default configuration:

adaniloff_kong_user:
    kong_host:
        url: "http://localhost:8000"
    auth:
        type: "key-auths"

You can make a good usage of php bin/console config:dump-reference adaniloff_kong_user to understand the configuration !

Example

Let's say you have the following Kong configuration :

# A consumer with a username `Aladdin` :
### curl http://kong:8001/consumers
{"next":null,"data":[{"custom_id":null,"created_at":1538573756,"username":"Aladdin","id":"0de8a9b0-xxx-xxx-xxx-148bda37091f"}]}

# And some auth process like key-auth : ...
### curl http://kong:8001/key-auths
{"total":1,"data":[{"id":"63cb981b-xxxx-xxxx-xxxx-6f7b3aa89d15","created_at":1538573769066,"key":"ZRJuTVjbMqZK67A0T4BbJAgrqVNgOQaP","consumer_id":"0de8a9b0-xxx-xxx-xxx-148bda37091f"}]}

# ... or basic-auth, with a password `OpenSesame`
### curl http://kong:8001/basic-auths
{"total":1,"data":[{"created_at":1538635575626,"id":"83fbc811-1cc4-4fba-a006-39a195cf282f","username":"Aladdin","password":"02ae45bb86dac5bb1a2174fc3f2e8449c488a981","consumer_id":"0de8a9b0-0e89-450e-be1e-148bda37091f"}]}

Then you should be able to make the following requests :

# Key Auth request, with an auth key defined as "x-apikey"
curl -i -X GET --url http://localhost:8000/ --header 'Host: my.custom.server.com' -H 'x-apikey: ZRJuTVjbMqZK67A0T4BbJAgrqVNgOQaP'

# Basic Auth request
curl -i -X GET --url http://localhost:8000/ --header 'Host: my.custom.server.com' -H 'Authorization: Basic QWxhZGRpbjpPcGVuU2VzYW1l'

See also ...

FAQs

Package last updated on 16 Oct 2018

Related posts