A JWSVerifierFactory is available as a service in your application container:
<?php
use Jose\Component\Signature\JWSVerifierFactory;
$jwsVerifierFactory = $container->get(JWSVerifierFactory::class);With this factory, you will be able to create the JWSVerifier you need:
$jwsVerifier = $jwsVerifierFactory->create(['HS256']);You can now use the JWSVerifier as explained in the JWS Creation section.
There is also another way to create a JWSVerifier object: using the bundle configuration.
jose:
jws:
verifiers:
verifier1:
signature_algorithms: ['HS256', 'RS256', 'ES256']
is_public: trueWith the previous configuration, the bundle will create a public JWS Verifier service named jose.jws_verifier.verifier1 with selected signature algorithms.
<?php
$jwsVerifier = $container->get('jose.jws_verifier.verifier1');You can add custom tags and attributes to the services you create.
jose:
jws:
verifiers:
verifier1:
signature_algorithms: ['HS256', 'RS256', 'ES256']
tags:
tag_name1: ~
tag_name2: {attribute1: 'foo'}The JWSLoaderFactory 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.
<?php
use Jose\Component\Signature\JWSLoaderFactory;
$jwsLoaderFactory = $container->get(JWSLoaderFactory::class);You can also create JWSLoader objects as services using the configuration of the bundle.
jose:
jws:
loaders:
jws_loader1:
serializers: ['jws_compact']
signature_algorithms: ['HS256']
header_checkers: ['alg']
is_public: trueOr using the ConfigurationHelper.
<?php
use Jose\Bundle\JoseFramework\Helper\ConfigurationHelper;
...
ConfigurationHelper::addJWSLoader($container, 'jws_loader1', ['jws_compact'], ['HS256'], ['alg'], true);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.
There is also another way to create a JWSBuilder object: using the bundle configuration.
jose:
jws:
builders:
builder1:
signature_algorithms: ['HS256', 'RS256', 'ES256']
is_public: trueWith the previous configuration, the bundle will create a public JWS Builder service named jose.jws_builder.builder1 with selected signature algorithms.
<?php
$jwsBuilder = $container->get('jose.jws_builder.builder1');You can add custom tags and attributes to the services you create.
jose:
jws:
builders:
builder1:
signature_algorithms: ['HS256', 'RS256', 'ES256']
tags:
tag_name1: ~
tag_name2: {attribute1: 'foo'}A JWSSerializerManagerFactory is available as a service in your application container:
<?php
use Jose\Component\Signature\JWSSerializerManagerFactory;
$jwsSerializerManagerFactory = $container->get(JWSSerializerManagerFactory::class);With this factory, you will be able to create the JWSSerializerManager you need:
$jwsSerializerManager = $jwsSerializerManagerFactory->create(['jws_compact']);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
There is also another way to create a JWSSerializerManager object: using the bundle configuration.
jose:
jws:
serializers:
serializer1:
serializers: ['jws_compact']
is_public: trueWith the previous configuration, the bundle will create a public JWS Serializer Manager service named jose.jws_serializer.serializer1 with selected serialization modes.
<?php
$jwsSerializerManager = $container->get('jose.jws_serializer.serializer1');You can add custom tags and attributes to the services you create.
jose:
jws:
serializers:
serializer1:
serializers: ['jws_compact']
tags:
tag_name1: ~
tag_name2: {attribute1: 'foo'}Signature algorithms are automatically handled by the Algorithm Manager Factory.
,
,
.
You can use symfony/serializer to serialize/unserialize your tokens:
// $serializer corresponds to the Symfony serializer
$serializer->serialize($data, 'jws_compact');