mirror of
				https://github.com/spring-projects/spring-security.git
				synced 2025-11-04 00:28:54 +00:00 
			
		
		
		
	
		
			
	
	
		
			31 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			31 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								[[jackson]]
							 | 
						||
| 
								 | 
							
								= Jackson Support
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Spring Security provides Jackson support for persisting Spring Security related classes.
							 | 
						||
| 
								 | 
							
								This can improve the performance of serializing Spring Security related classes when working with distributed sessions (i.e. session replication, Spring Session, etc).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								To use it, register the `SecurityJackson2Modules.getModules(ClassLoader)` with `ObjectMapper` (https://github.com/FasterXML/jackson-databind[jackson-databind]):
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[source,java]
							 | 
						||
| 
								 | 
							
								----
							 | 
						||
| 
								 | 
							
								ObjectMapper mapper = new ObjectMapper();
							 | 
						||
| 
								 | 
							
								ClassLoader loader = getClass().getClassLoader();
							 | 
						||
| 
								 | 
							
								List<Module> modules = SecurityJackson2Modules.getModules(loader);
							 | 
						||
| 
								 | 
							
								mapper.registerModules(modules);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// ... use ObjectMapper as normally ...
							 | 
						||
| 
								 | 
							
								SecurityContext context = new SecurityContextImpl();
							 | 
						||
| 
								 | 
							
								// ...
							 | 
						||
| 
								 | 
							
								String json = mapper.writeValueAsString(context);
							 | 
						||
| 
								 | 
							
								----
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[NOTE]
							 | 
						||
| 
								 | 
							
								====
							 | 
						||
| 
								 | 
							
								The following Spring Security modules provide Jackson support:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- spring-security-core (`CoreJackson2Module`)
							 | 
						||
| 
								 | 
							
								- spring-security-web (`WebJackson2Module`, `WebServletJackson2Module`, `WebServerJackson2Module`)
							 | 
						||
| 
								 | 
							
								- <<oauth2client, spring-security-oauth2-client>> (`OAuth2ClientJackson2Module`)
							 | 
						||
| 
								 | 
							
								- spring-security-cas (`CasJackson2Module`)
							 | 
						||
| 
								 | 
							
								====
							 |