2

我正在使用 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 插入正确的数据。

谢谢

4

0 回答 0