A JWEDecrypterFactory
is available as a service in your application container:
<?phpuse Jose\Component\Encryption\JWEDecrypterFactory;​$jweDecrypterFactory = $container->get(JWEDecrypterFactory::class);
With this factory, you will be able to create the JWEDecrypter you need:
$jweDecrypter = $jweDecrypterFactory->create(['HS256']);
You can now use the JWEDecrypter as explained in the JWE Creation section.
Reminder: it is important to check the token headers. See the checker section of this documentation.
There is also another way to create a JWEDecrypter object: using the bundle configuration.
jose:jwe:decrypters:decrypter1:key_encryption_algorithms: ['A256GCMKW']content_encryption_algorithms: ['A256CBC-HS256']compression_methods: ['DEF']is_public: true
With the previous configuration, the bundle will create a public JWE Decrypter service named jose.jwe_decrypter.decrypter1
with selected encryption algorithms.
<?php$jweDecrypter = $container->get('jose.jwe_decrypter.decrypter1');
This feature was introduced in version 1.1.
You can add custom tags and attributes to the services you create.
jose:jwe:decrypters:decrypter1:key_encryption_algorithms: ['A256GCMKW']content_encryption_algorithms: ['A256CBC-HS256']compression_methods: ['DEF']tags:tag_name1: ~tag_name2: {attribute1: 'foo'}
The JWELoaderFactory
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 JWELoader
objects on demand.
<?phpuse Jose\Component\Encryption\JWELoaderFactory;​$jweLoaderFactory = $container->get(JWELoaderFactory::class);
You can also create JWELoader
objects as services using the configuration of the bundle.
jose:jwe:loaders:jwe_loader1:key_encryption_algorithms: ['A256GCMKW']content_encryption_algorithms: ['A256CBC-HS256']compression_methods: ['DEF']header_checkers: ['alg', 'enc']is_public: true
Or using the ConfigurationHelper
.
<?phpuse Jose\Bundle\JoseFramework\Helper\ConfigurationHelper;​...ConfigurationHelper::addJWELoader($container, 'jwe_loader1', ['jwe_compact'], ['A256GCMKW'], ['A256CBC-HS256'], ['DEF'], ['alg', 'enc'], true);