Spring Oauth を使用しており、テスト データを oauth_client_token テーブル (クライアント側の Spring Oauth 2) に挿入しようとしています。Spring Oauth の のバイトコードを見ると、次のように表示されます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 に挿入させることでした。ただし、バイトで SerializationUtils.deserialize を呼び出す が呼び出されると、正しくないヘッダー例外が発生します。これは、base64 が SerializationUtils.serialize と同じ出力を生成していないために発生すると考えられます。DBUnit を使用して正しいデータを挿入する方法があれば教えてください。JdbcClientTokenService.getAccessToken
ありがとう