<?xml version="1.0" ?>

<container xmlns="http://symfony.com/schema/dic/services"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">

    <services>
        <service id="lexik_jwt_authentication.access_token_loader" class="Lexik\Bundle\JWTAuthenticationBundle\Services\WebToken\AccessTokenLoader" public="false">
            <argument type="service" id="Jose\Bundle\JoseFramework\Services\JWSLoaderFactory" />
            <argument type="service" id="Jose\Bundle\JoseFramework\Services\JWELoaderFactory" on-invalid="null" />
            <argument type="service" id="Jose\Bundle\JoseFramework\Services\ClaimCheckerManagerFactory" />
            <argument type="collection" /> <!-- Claim checkers -->
            <argument type="collection"/> <!-- JWS header checkers -->
            <argument type="collection"/> <!-- Mandatory claims -->
            <argument type="collection" /> <!-- Allowed signature algorithms -->
            <argument /> <!-- Signature keyset -->
            <argument on-invalid="null" /> <!-- Continue on decryption failure -->
            <argument type="collection" /> <!-- JWE header checkers -->
            <argument type="collection" /> <!-- Allowed key encryption algorithms -->
            <argument type="collection" /> <!-- Allowed content encryption algorithms -->
            <argument on-invalid="null" /> <!-- Encryption keyset -->
        </service>
        <service id="lexik_jwt_authentication.web_token.iat_validator" class="Jose\Component\Checker\IssuedAtChecker" public="false">
            <argument>%lexik_jwt_authentication.clock_skew%</argument>
            <argument>true</argument>
            <tag name="jose.checker.claim" alias="iat_with_clock_skew" />
            <tag name="jose.checker.header" alias="iat_with_clock_skew" />
        </service>
        <service id="lexik_jwt_authentication.web_token.exp_validator" class="Jose\Component\Checker\ExpirationTimeChecker" public="false">
            <argument>%lexik_jwt_authentication.clock_skew%</argument>
            <argument>true</argument>
            <tag name="jose.checker.claim" alias="exp_with_clock_skew" />
            <tag name="jose.checker.header" alias="exp_with_clock_skew" />
        </service>
        <service id="lexik_jwt_authentication.web_token.nbf_validator" class="Jose\Component\Checker\NotBeforeChecker" public="false">
            <argument>%lexik_jwt_authentication.clock_skew%</argument>
            <argument>true</argument>
            <tag name="jose.checker.claim" alias="nbf_with_clock_skew" />
            <tag name="jose.checker.header" alias="nbf_with_clock_skew" />
        </service>
    </services>
</container>
