問題タブ [javax.ws.rs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
authorization - EJB インターセプターを使用してユーザーを許可する方法は?
サービス層に ejb を使用する予定です。http クライアントと EJB クライアントがあります。
ユーザーの役割に基づいてユーザーのアクションを承認したいと考えています。ユーザーには、管理者と非管理者の 2 種類があります。
サーバー内にレルムを構成し、Web 層では SecurityContext がサーバーによって取り込まれます。
基本的にインターセプターを作成し、それをサービス メソッドに追加します。どのクライアント層からメソッドが呼び出されたかに関係なく、ejb メソッドが呼び出されるたびに、インターセプターはユーザー名/ID を取得して、承認を確認できるようにする必要があります。
誰でもこれを解決する方法を教えてもらえますか?
java - @DefaultValue が指定されていない場合の @QueryParam のデフォルト値は何ですか?
たとえば、次の Java レスト定義があるとします。
そして呼び出し:
呼び出しで指定されていない場合、パラメーター値はどうなりますか? (valString=?、valInt=?、valBool=?)
validation - Dropwizard Validate @FormParam
POST リクエストの @FormParams が空でないことを検証するにはどうすればよいですか? Dropwizard バージョン 0.9.3 を使用しています。
title パラメータを指定せずに POST リクエストを送信すると、次のサーバー エラーが発生します。
!org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: メディア タイプ = text/html、タイプ = クラス io.dropwizard.jersey.validation.ValidationErrorMessage、genericType = クラス io.dropwizard.jersey.validation.ValidationErrorMessage の MessageBodyWriter が見つかりません。
クライアントは以下を受け取ります。
以前は @QueryParam に @NotEmpty を使用していましたが、うまくいきました。クライアントに (400 Bad request) のようなものを受け取ってもらいたい:
dropwizard 0.9.0 で導入された NonEmptyStringParam を使用してみましたが、うまくいきませんでした。助言がありますか?
編集:
ドキュメントには、「検証が必要なオプションのフィールドまたはパラメーターがある場合は、 @UnwrapValidatedValue アノテーションを追加してください。」および「この状況で q を Optional.absent() に評価する場合は、型を NonEmptyStringParam に変更します」。これを試しましたが、パラメーターが評価されていません。
java - json の @POST パラメータを非整列化する
次のようなクラスがあります。
また、javax.ws.rs を使用したエンドポイント クラスもあります。
これは期待どおりに機能します。
質問: createTest() が "String" の代わりに "Test" クラスをパラメーターとして受け取るようにするにはどうすればよいですか?
試用版: createTest() のパラメーターとして「Test」を使用すると、次のメッセージを送信すると「415 Unsupported Media Type」が返されます。
xml - クライアント側の javax.ws.rs Entity からプレーン XML を取得する方法
経由でエンティティを作成するREST
クライアントがあります。その後、私は電話しますXML
Entity.entity(myObject, MediaType.APPLICATION_XML_TYPE)
webTarget.request().buildPost(...
XML
クライアントがサーバーに送信するリクエスト本文を取得するにはどうすればよいですか? (デバッグのために必要です。) ここで得られるのはEntity
オブジェクトだけです。
もちろん、自分でシリアル化することもできますMarshaller
が、これは本当にXML
クライアントが送信するものと同じですか?
java - @Context 引数をクラスのメソッドに渡す
ユーザーをシステムにSSOするためのヘッダーパラメーターを取得するためにフックしようとしている既存のクラスがあります。クラスは以下の通りです。
私が理解しようとしているのはgetAllHeaders()
、@Context
引数でどのように呼び出すのですか? 私が持っているクラスの例をたくさん見つけましたが、それを呼び出す方法を示すものは何もありません。
また、引数としてではなく、クラス内に注釈を入れてみました。
しかし、アクセスしようとするhttpHeaders.getAllHeaders()
とnullが返されます。javaxドキュメントでnullを返さないと書かれているため、実際には作成されていないためだと思います。
SSOAuthorizationFilter.java 内でこれを呼び出そうとしていますが、コントローラー経由でもアクセスしようとしました。
jersey - JAVA クラスパスと jersey クライアント
私はこの数週間この問題を抱えていました.Javaアプリケーションを実行するたびに、次の例外が発生しました: