Skip to content

jmelosegui/synology-security-provider

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SynologyServiceProvider

This library provides the users authentication through the Synology's security System.

Installation

Use Composer to install the jmelosegui/synology-security-provider library by adding it to your composer.json.

{
    "require": {
        "silex/silex": "~1.0",
        "symfony/form": "~2.3",
        "symfony/security": "~2.3",
        "jmelosegui/synology-security-provider": "dev-master"
    }
}

Usage

First, register the service provider passing the synology server name or ip address and port:

$app->register(new SynologyServiceProvider(), array(
    'synologyServerName' => 'localhost',
    'synologyServerPort' => '5000',
));

Since the code will run inside the NAS you can use localhost as the serverName. If you need to debug on your dev pc change localhost to the Synology server Ip address.

Next, register the synology security provider in your firewall.

// Provides URL generation
$app->register(new Silex\Provider\UrlGeneratorServiceProvider());

// Provides CSRF token generation
$app->register(new Silex\Provider\FormServiceProvider());

// Provides session storage
$app->register(new Silex\Provider\SessionServiceProvider());

$app->register(new SecurityServiceProvider($app), array(
    'security.firewalls' => array(
        'login' => array(
            'pattern' => '^/login$',
        ),
        'synology' => array(
            'pattern' => '^.*$',
            'synology' => true,
            'form' => array('login_path' => '/login', 'check_path' => '/dologin', 'use_referer' => true),
            'logout' => array('logout_path' => '/logout'),
        )
    )
));

License

Released under the MIT license. See the LICENSE file for details.

About

Sylex security provider for Synology NAS

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages