Skip to content

Spring JDBC session not working after adding jackson support to http session serialization/Deserialization #1810

Closed
@vkatoch2000

Description

@vkatoch2000

I Have logged this ticket earlier regarding the issue with the spring JDBC session deserialization after spring upgrade
#1805
They recommend it to use Jackson support to Spring JDBC HTTP session

I have create object mapper like :
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.registerModule(new CoreJackson2Module());
objectMapper.registerModules(SecurityJackson2Modules.getModules(loader));
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
objectMapper.addMixIn(DefaultOAuth2ClientContext.class, DefaultOAuth2ClientContextMixIn.class);

used this objectMapper for deserialization and serialization set it to JdbcIndexedSessionRepository conversion service.

DefaultOAuth2ClientContextMixIn create custom mixin :
public interface DefaultOAuth2ClientContextMixIn {

@JsonTypeInfo(defaultImpl = DefaultOAuth2AccessToken.class, use = JsonTypeInfo.Id.NONE)
OAuth2AccessToken getAccessToken();

@JsonTypeInfo(defaultImpl = DefaultAccessTokenRequest.class, use = JsonTypeInfo.Id.NONE)
AccessTokenRequest getAccessTokenRequest();

}
Getting error

com.fasterxml.jackson.databind.JsonMappingException: The class with com.sun.proxy.$Proxy344 and name of com.sun.proxy.$Proxy344 is not in the allowlist. If you believe this class is safe to deserialize, please provide an explicit mapping using Jackson annotations or by providing a Mixin. If the serialization is only done by a trusted source, you can also enable default typing. See spring-projects/spring-security#4370 for details (through reference chain: org.springframework.security.oauth2.client.DefaultOAuth2ClientContext["accessTokenRequest"])

Wrapped by: org.springframework.dao.DataIntegrityViolationException: PreparedStatementCallback; SQL [UPDATE SPRING_SESSION_ATTRIBUTES SET ATTRIBUTE_BYTES = ? WHERE SESSION_PRIMARY_ID = ? AND ATTRIBUTE_NAME = ?]; ERROR: null value in column "attribute_bytes" violates not-null constraint
Detail: Failing row contains (f12d0737-815c-4b4d-8c8b-780ed8a171aa, scopedTarget.oauth2ClientContext, null).; nested exception is org.postgresql.util.PSQLException: ERROR: null value in column "attribute_bytes" violates not-null constraint

any clue what's wrong here?

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions