私たちはdropwizard 0.9.Xを使用しています。データを取得する前にユーザーが入力したトークンを認証するように作成されたカスタマイズされたクラスがあります。私は最初の不正なメッセージをカスタマイズしたい "資格はこのリソースにアクセスする必要があります。 JSON形式に変換すると、私は以下のように表示したいと思います。Javaのjsonフォーマットへのdropwizard初期無許可メッセージのカスタマイズ
{
"code": 401,
"message": "HTTP 401 Unauthorized, Credentials are required to access this resource."
}
私はStatusTypeを実装するためにAbstractStatusTypeを書いていると私は、ユーザーが無効なトークンまたは期限切れのトークンを入力するたびに上記の形式のメッセージを印刷することができています。例bearer 03cb9ebe-1c66-4d08-b9a4-afe69989ef21
しかし、私はまだ "このリソースにアクセスするには資格情報が必要です"という計画のテキストレスポンスボディを取得しています。ユーザーが「ベアラ」だけを入力した場合、またはトークン「03cb9ebe-1c66-4d08-b9a4-afe69989ef21」
をJSON形式より上位にカスタマイズする手助けをしてください。
以下は、「このリソースにアクセスするには資格情報が必要です」という応答を設定しているカスタマイズされたコードです。内部的にはdropWizardを使用していますOAuthCredentialAuthFilterクラス
public AuthDynamicFeature getAuthFilter(CachingAuthenticator<String, AuthenticatedPrincipal> cachingAuthenticator) {
OAuthCredentialAuthFilter<AuthenticatedPrincipal> authFilter = new OAuthCredentialAuthFilter.Builder<AuthenticatedPrincipal>()
.setAuthenticator(cachingAuthenticator)
.setAuthorizer(new OAuthAuthorizer())
.setRealm(REALM)
.setPrefix(PREFIX)
.buildAuthFilter();
return new AuthDynamicFeature(authFilter);
}
ありがとうございました!このため
@Arturは、あなたの提案のおかげでは、上記の溶液に、私は私がしたいメッセージを印刷することができますが、私はJSON形式のメッセージを取得しておりません。私はちょうど計画のテキスト形式を取得しています。あなたはJSON形式のメッセージをどのように出力するのですか?ありがとう。計画テキスト形式の代わりにJSON形式メッセージを設定する方法はありますか?事前にあなたの助けをありがとう! – Rags