PHPackages                             meuhmeuhconcept/security-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. meuhmeuhconcept/security-bundle

ActiveLibrary[Authentication &amp; Authorization](/categories/authentication)

meuhmeuhconcept/security-bundle
===============================

Provides user management for Symfony3 Project.

1.2.9(5y ago)0214[1 PRs](https://github.com/MeuhMeuhConcept/SecurityBundle/pulls)MITPHPPHP &gt;5.3.0

Since May 13Pushed 4y ago1 watchersCompare

[ Source](https://github.com/MeuhMeuhConcept/SecurityBundle)[ Packagist](https://packagist.org/packages/meuhmeuhconcept/security-bundle)[ RSS](/packages/meuhmeuhconcept-security-bundle/feed)WikiDiscussions master Synced today

READMEChangelog (10)Dependencies (7)Versions (14)Used By (0)

SecurityBundle
==============

[](#securitybundle)

Provides user management for Symfony3 Project.

CONFIGURATION
-------------

[](#configuration)

Typical `config/packages/mmc_security.yaml`

```
mmc_security:
    sessionTTL:
        anonymous: 600
    logout:
        - 'api' // Connect LogoutLister to the firewall 'api'

```

Typical `config/packages/security.yaml`

```
security:
    # https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providers
    encoders:
        Symfony\Component\Security\Core\User\User: bcrypt
        Mmc\Security\User\User: bcrypt
        Mmc\Security\Entity\User: bcrypt

    providers:
        chain_provider:
            chain:
                providers: [users_in_memory, mmc_user]

        users_in_memory:
            memory:
                users:
                    admin: { password: '%env(ADMIN_PASSWORD)%', roles: [ 'ROLE_ADMIN' ] }
        mmc_user:
            id: security.user.provider.mmc

    firewalls:
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false

        public:
            pattern:  ^/api/public
            stateless: true
            anonymous: true

        login:
            pattern:  ^/api/login
            stateless: true
            anonymous: true
            mmc_login:
                check_path:               /api/login_check
                success_handler:          lexik_jwt_authentication.handler.authentication_success
                failure_handler:          lexik_jwt_authentication.handler.authentication_failure
                authenticators:
                    - security.authentication.provider.mmc.authenticators.token_by_email
                    - security.authentication.provider.mmc.authenticators.username_password
                    - security.authentication.provider.mmc.authenticators.anonymous
            provider: chain_provider

        api:
            pattern:   ^/api
            stateless: true
            guard:
                authenticators:
                    - lexik_jwt_authentication.jwt_token_authenticator
            logout:
                path:    /api/logout
            provider: chain_provider

    # Easy way to control access for large sections of your site
    # Note: Only the *first* access control that matches will be used
    access_control:
        - { path: ^/api/public, roles: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/api/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/api,       roles: IS_AUTHENTICATED_FULLY }

```

### Connect security factory

[](#connect-security-factory)

In your `src/Kernel.php`, add the folowing lines

```
...
use Mmc\Security\DependencyInjection\Security\Factory\MmcLoginFactory;
...

    public function build(ContainerBuilder $container)
    {
        $extension = $container->getExtension('security');
        $extension->addSecurityListenerFactory(new MmcLoginFactory());
    }
...

```

### Add login\_check route

[](#add-login_check-route)

Don't forget to add this route to your `config/routes.yaml`

```
api_login_check:
    path: /api/login_check

```

#### Logout

[](#logout)

To enable logout, add this route

```
api_logout:
    path: /api/logout

```

### If you use lexit/jwt-authentication-bundle

[](#if-you-use-lexitjwt-authentication-bundle)

Add this service in your project

```
