arrow-left

All pages
gitbookPowered by GitBook
1 of 4

Loading...

Loading...

Loading...

Loading...

JWS serializers

hashtag
JWS Serializer Manager Factory Service

A JWSSerializerManagerFactory is available as a service in your application container:

With this factory, you will be able to create the JWSSerializerManager you need:

You can now use the JWSSerializerManager as explained in the JWS Creation/Loading section.

Available JWS serialization modes are:

  • jws_compact

  • jws_json_general

  • jws_json_flattened

hashtag
JWS Serializer Manager As Service

There is also another way to create a JWSSerializerManager object: using the bundle configuration.

With the previous configuration, the bundle will create a public JWS Serializer Manager service named jose.jws_serializer.serializer1 with selected serialization modes.

hashtag
Custom Tags

You can add custom tags and attributes to the services you create.

<?php
use Jose\Component\Signature\JWSSerializerManagerFactory;

$jwsSerializerManagerFactory = $container->get(JWSSerializerManagerFactory::class);
$jwsSerializerManager = $jwsSerializerManagerFactory->create(['jws_compact']);
jose:
    jws:
        serializers:
            serializer1:
                serializers: ['jws_compact']
                is_public: true
<?php
$jwsSerializerManager = $container->get('jose.jws_serializer.serializer1');
jose:
    jws:
        serializers:
            serializer1:
                serializers: ['jws_compact']
                tags:
                    tag_name1: ~
                    tag_name2: {attribute1: 'foo'}

JWS verification

hashtag
JWS Verifier Factory Service

A JWSVerifierFactory is available as a service in your application container:

With this factory, you will be able to create the JWSVerifier you need:

You can now use the JWSVerifier as explained in the JWS Creation section.

circle-info

Reminder: it is important to check the token headers. See the checker section of this documentation.

hashtag
JWS Verifier As Service

There is also another way to create a JWSVerifier object: using the bundle configuration.

With the previous configuration, the bundle will create a public JWS Verifier service named jose.jws_verifier.verifier1 with selected signature algorithms.

hashtag
Custom Tags

You can add custom tags and attributes to the services you create.

hashtag
JWS Loader Service

The is available as a public service. You can retrieve it using the container or inject it into your services. It will help you to create JWSLoader objects on demand.

You can also create JWSLoader objects as services using the configuration of the bundle.

Or using the .

<?php
use Jose\Component\Signature\JWSVerifierFactory;

$jwsVerifierFactory = $container->get(JWSVerifierFactory::class);
$jwsVerifier = $jwsVerifierFactory->create(['HS256']);
JWSLoaderFactory
ConfigurationHelper
jose:
    jws:
        verifiers:
            verifier1:
                signature_algorithms: ['HS256', 'RS256', 'ES256']
                is_public: true
<?php
$jwsVerifier = $container->get('jose.jws_verifier.verifier1');
jose:
    jws:
        verifiers:
            verifier1:
                signature_algorithms: ['HS256', 'RS256', 'ES256']
                tags:
                    tag_name1: ~
                    tag_name2: {attribute1: 'foo'}
<?php
use Jose\Component\Signature\JWSLoaderFactory;

$jwsLoaderFactory = $container->get(JWSLoaderFactory::class);
jose:
    jws:
        loaders:
            jws_loader1:
                serializers: ['jws_compact']
                signature_algorithms: ['HS256']
                header_checkers: ['alg']
                is_public: true
<?php
use Jose\Bundle\JoseFramework\Helper\ConfigurationHelper;

...
ConfigurationHelper::addJWSLoader($container, 'jws_loader1', ['jws_compact'], ['HS256'], ['alg'], true);

JWS creation

hashtag
JWS Builder Factory Service

A JWSBuilderFactory is available as a service in your application container:

<?php
use Jose\Component\Signature\JWSBuilderFactory;

$jwsBuilderFactory = $container->get(JWSBuilderFactory::class);

With this factory, you will be able to create the JWSBuilder you need:

$jwsBuilder = $jwsBuilderFactory->create(['HS256']);

You can now use the JWSBuilder as explained in the JWS Creation section.

hashtag
JWS Builder As Service

There is also another way to create a JWSBuilder object: using the bundle configuration.

With the previous configuration, the bundle will create a public JWS Builder service named jose.jws_builder.builder1 with selected signature algorithms.

hashtag
Custom Tags

You can add custom tags and attributes to the services you create.

jose:
    jws:
        builders:
            builder1:
                signature_algorithms: ['HS256', 'RS256', 'ES256']
                is_public: true
<?php
$jwsBuilder = $container->get('jose.jws_builder.builder1');
jose:
    jws:
        builders:
            builder1:
                signature_algorithms: ['HS256', 'RS256', 'ES256']
                tags:
                    tag_name1: ~
                    tag_name2: {attribute1: 'foo'}

Signed Tokens

Signature algorithms are automatically handled by the Algorithm Manager Factory.

  • JWS serializers,

  • JWS creation,

  • .

You can use symfony/serializer to serialize/unserialize your tokens:

// $serializer corresponds to the Symfony serializer
$serializer->serialize($data, 'jws_compact');
JWS verification