我正在使用 Spring Oauth,并且正在尝试将测试数据插入 oauth_client_token 表(客户端 Spring Oauth 2)。当我查看 Spring Oauth's 的字节码时JdbcClientTokenService.saveAccessToken
,我看到了这个:
jdbcTemplate.update(
insertAccessTokenSql,
new Object[] { accessToken.getValue(), new SqlLobValue(SerializationUtils.serialize(accessToken)),
keyGenerator.extractKey(resource, authentication), name,
resource.getClientId() }, new int[] { Types.VARCHAR, Types.BLOB, Types.VARCHAR, Types.VARCHAR,
Types.VARCHAR });
我关心的new SqlLobValue(SerializationUtils.serialize(accessToken))
是生成对象字节的这一部分。我想要一种方法让 DBUnit 在集成测试期间插入所有这些数据。我之前做的是生成一些随机字符串的base64字节字符串,然后让DBUnit插入它。但是,当JdbcClientTokenService.getAccessToken
调用对字节调用 SerializationUtils.deserialize 时,我得到不正确的标头异常。我相信会发生这种情况,因为 base64 生成的输出与 SerializationUtils.serialize 不同。让我知道是否有办法使用 DBUnit 插入正确的数据。
谢谢