JWE creation JWE Builder Factory Service
A JWEBuilderFactory
is available as a service in your application container:
Copy <? php
use Jose \ Component \ Encryption \ JWEBuilderFactory ;
$jweBuilderFactory = $container -> get ( JWEBuilderFactory ::class ) ;
With this factory, you will be able to create the JWEBuilder you need:
Copy $jweBuilder = $jweBuilderFactory -> create (
[ 'A256GCMKW' ] ,
[ 'A256CBC-HS256' ] ,
[ 'DEF' ] // Compression methods
) ;
Available compression methods are:
DEF
: deflate (recommended)
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.
Copy jose :
jwe :
builders :
builder1 :
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 Builder service named jose.jwe_builder.builder1
with selected encryption algorithms.
Copy <? php
$jweBuilder = $container -> get ( 'jose.jwe_builder.builder1' ) ;
Custom Tags
You can add custom tags and attributes to the services you create.
Copy jose :
jwe :
builders :
builder1 :
key_encryption_algorithms : [ 'A256GCMKW' ]
content_encryption_algorithms : [ 'A256CBC-HS256' ]
compression_methods : [ 'DEF' ]
tags :
tag_name1 : ~
tag_name2 : { attribute1 : 'foo' }