PHPackages                             manuelj555/wsse-server-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. manuelj555/wsse-server-bundle

ActiveSymfony-bundle[Authentication &amp; Authorization](/categories/authentication)

manuelj555/wsse-server-bundle
=============================

Symfony Wsse Server Bundle

2861[1 issues](https://github.com/manuelj555/WsseServerBundle/issues)PHP

Since Feb 12Pushed 10y ago2 watchersCompare

[ Source](https://github.com/manuelj555/WsseServerBundle)[ Packagist](https://packagist.org/packages/manuelj555/wsse-server-bundle)[ RSS](/packages/manuelj555-wsse-server-bundle/feed)WikiDiscussions master Synced 4w ago

READMEChangelogDependenciesVersions (1)Used By (0)

WsseServerBundle
================

[](#wsseserverbundle)

Bundle para la autenticación de servidores soap usando WSSE

La idea del bundle es facilitar la implementación de la seguridad WSSE en un servidor soap. El bundle ofrece una anotación que permite asegurar un controlador o una acción concreta, donde, añadiendo la anotación `@Ku\Bundle\WsseServerBundle\Annotation\CheckWsseSecurity()` hacemos que la acción soap requiera de las siguientes cabeceras:

- **Username**: Nombre de usuario establecido entre servidor y cliente para la comunicación soap.
- **PasswordDigest**: Clave generada por el cliente utilizando un nonce previamente obtenido desde el servidor, en conjunto con una fecha de creación del `PasswordDigest` y una clave secreta que comparten tanto servidor como cliente.
- **Created** la fecha usada para crear el `PasswordDigest`.
- **Nonce**: el valor de nonce obtenido al llamar a la acción `generateNonce` del servicor soap.

### Instalación

[](#instalación)

Agregar al composer.json:

```
"require" : {
    "manuelj555/wsse-server-bundle": "1.0.*@dev",
}
```

Y ejecutar

```
composer update

```

Luego de ello, registrar el bundle en el AppKernel.php:

```
public function registerBundles()
{
    $bundles = array(
        ...
        new Ku\Bundle\WsseServerBundle\WsseServerBundle(),
    );

    ...
}
```

### Configuración

[](#configuración)

El bundle contiene una pequeña configuración para su funcionamiento:

```
# app/config/config.yml

wsse_server:
    # application_repository_service: wsse_server.application.default_application_repository # Valor por defecto
    applications:
        'Nombre':
            username: nombre_de_usuario
            password: clave
            # parameters:
            #    adicional: parameter
```

Basicamente se deben/pueden configurar dos cosas:

- **application\_repository\_service**: Servicio que representa al repositorio de aplicaciones, por defecto se usa uno del bundle, el cual devuelve la aplicación establecida en la parte de configuración `applications` buscando por el `username`. Este servicio puede ser cambiando creando uno propio que implementé la interfaz `Ku\Bundle\WsseServerBundle\Application\ApplicationRepositoryInterface`, por ejemplo para manejar las aplicaciones en una base de datos, etc.
- **applications**: Acá se definen las posibles aplicaciones que se conectan al servidor soap (Si usamos un repositorio de aplicaciones propio, no hace falta definir ninguna aplicación acá). La idea es darle un nombre a la aplicación y dentro definir
    - **username**: Nombre de usuario que el cliente envia en las credenciales (Este valor es el usado por el Repositorio de aplicaciones para obtener y devolver los datos de conexión de la aplicación).
    - **password**: Contraseña interna establecida entre cliente y servidor para crear el `PasswordDigest`.
    - **parameters** (opcional): Un arreglo de datos para manejar información adicional que se requiera.

### Uso

[](#uso)

Este bundle requiere de que el servidor soap se haya creado utilizando el bundle `BeSimpleSoapBundle`, y basicamente para activar la seguridad en una acción de un controlador soap se debe incluir la anotación `@Ku\Bundle\WsseServerBundle\Annotation\CheckWsseSecurity()` de la siguiente forma:

```
