JWE creation
JWE Builder Factory Service
A JWEBuilderFactory is available as a service in your application container:
<?php
use Jose\Component\Encryption\JWEBuilderFactory;
$jweBuilderFactory = $container->get(JWEBuilderFactory::class);With this factory, you will be able to create the JWEBuilder you need:
$jweBuilder = $jweBuilderFactory->create(
    ['A256GCMKW'],
    ['A256CBC-HS256'],
    ['DEF'] // Compression methods
);Available compression methods are:
- DEF: deflate (recommended)
- GZ: gzip
- ZLIB: zlib
You can now use the JWEBuilder as explained in the JWE Creation section.
JWE Builder As Service
There is also another way to create a JWEBuilder object: using the bundle configuration.
jose:
    jwe:
        builders:
            builder1:
                key_encryption_algorithms: ['A256GCMKW']
                content_encryption_algorithms: ['A256CBC-HS256']
                compression_methods: ['DEF']
                is_public: trueWith the previous configuration, the bundle will create a public JWE Builder service named jose.jwe_builder.builder1 with selected encryption algorithms.
<?php
$jweBuilder = $container->get('jose.jwe_builder.builder1');Custom Tags
You can add custom tags and attributes to the services you create.
jose:
    jwe:
        builders:
            builder1:
                key_encryption_algorithms: ['A256GCMKW']
                content_encryption_algorithms: ['A256CBC-HS256']
                compression_methods: ['DEF']
                tags:
                    tag_name1: ~
                    tag_name2: {attribute1: 'foo'}Last updated
Was this helpful?
