リクエストマップを使用して春のセキュリティで保護されたAPIをテストしたいと思います。 APIは主に認証されたユーザーによって使用されるため、ログインしたユーザーでAPIをテストする必要があります。私は、ユーザーが認証されなければならないAPIを呼び出す前に統合テストで休憩クライアントと春のセキュリティセッションを共有する方法
testCompile "org.grails:grails-datastore-rest-client:6.0.5.RELEASE"
を使用し、残りのクライアントのための試験で
。私は、セットアップ中に、次の試してみました:
springSecurityService.reauthenticate "admin"
再認証の呼び出しにもかかわらず、残りのクライアントを検出することができたセッションが存在しない、したがって、ステータスコードが302である - >ログインページにリダイレクトします。
void "test fetching execution statistic"() {
given:
RestBuilder rest = new RestBuilder()
when:
//requestHeaders.add("Cookie", "JSESSIONID=" + session.getValue());
RestResponse response = rest.post("http://localhost:8080/correctionStatistic/executionStatistic") {
json([
reportingPeriod_year: 2008,
reportingPeriod_month: 01
])
}
then:
response.status == 200
}
セッションは残りのクライアントとどのように共有できますか?コメント行でわかるように、リクエストヘッダにセッションIDを追加する方法がありますが、統合テストでセッションIDを要求する方法もあります。