問題タブ [jsr250]
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.
java - スタンドアロン Java プログラムでのアノテーション基本構成
私が本当に気に入っている Java EE のアノテーション基本構成 (@Resource) 機能を知りました。その後、アノテーションが実際には Java SE の一部であることに気付きました。
ということで、Java SEで使えるかな。私は確かにスタンドアロンプログラムで注釈を使用できますが、実際に構成する方法を見つけています。私が見つけたすべての例には、Java EE 構成ファイルの作成が含まれていました。Java EE環境外で使用できることを確認してください(または参照してください)。そしてそれを行う方法は?
java - JAX-RS (Jersey) および @RolesAllowed を使用したカスタム HTTP ステータス応答
私の非常に単純な JAX-RS サービスでは、Tomcat と認証用の JDBC レルムを使用しているため、JSR 250 アノテーションを使用しています。
問題は、HTTP ステータス応答でカスタム メッセージ本文を返したいということです。ステータス コード (403) は同じままである必要があります。たとえば、私のサービスは次のようになります。
「ADMIN」以外のロールを持つユーザーがサービスにアクセスした場合、応答メッセージを次のように変更したい (メディア タイプ [xml/json] に応じて):
現時点で、Jersey は次のボディを返します。
デフォルトのメッセージ本文を変更するにはどうすればよいですか? (スローされる可能性がある) 例外を処理して、独自の HTTP ステータス応答を作成する方法はありますか?
spring - カスタム認証で機能しないアノテーションによるSpring認証
BasicAuthenticationFilterを上書きし、それをフィルターに置き換えて、dbからカスタム認証オブジェクトをフェッチし、
セキュリティ構成の重要な部分は次のとおりです。
また、独自のAuthenticationProviderも提供しています。これは、認証プロセスがカスタムフィルターで既に実行されているため、何も実行されません。
これで、Springは開始時にすべてのメソッドに必要な役割を正しく出力するため、アノテーションが正しく検出されます。たとえば、deleteメソッドの「admin」ロール:
2011-11-22 11:47:09,474 [main]DEBUGorg.springframework.security.access.method.DelegatingMethodSecurityMetadataSource-セキュリティメソッドの追加[CacheKey[com.somecompany.SomeClass; public com.somecompany.ReturnType com.somecompany.SomeClass.delete()]]属性[admin]
しかし、Springは、ユーザーがこの役割を持っているかどうかをどういうわけかチェックしません。代わりに、セキュリティコンテキストxmlファイルのhttpタグで定義されたグローバルパターンにフォールバックします。したがって、たとえば、roles:["user"]のユーザーを使用してこのdeleteメソッドにアクセスすると、httpタグにhasRole('user')があるため、このメソッドが受け入れられます。
おそらく、DefaultFilterInvocationSecurityMetadataSourceオブジェクトを初期化するときに、deleteメソッドの特定のルールが満たされないため、何か問題があります!?addSecureUrlメソッドを介して追加されるのは、httpタグで定義されたルールのみです。
何が間違っている可能性がありますか?
java - javax.annotation.GeneratedをJavaSE5に追加するにはどうすればよいですか?
私はJavaSE5とJavaSE6で実行する必要のあるプロジェクトに取り組んでいます。最近、@Generated
生成されたコードに注釈を追加するツールを使い始めましたが、それらの注釈を保持したいと思います。Java5EEおよびJava6SE以降にあるように見えますjavax.annotation.Generated
が、Java 5SEAPIにはありません。
javax.annotation.Generated
JavaSE5とJavaSE6の両方で問題なく実行できるように、顧客に送信するときに含めるのに最適な方法は何ですか?追加のjarファイルを含める必要がありますか?もしそうなら、どちらが@Generated
住んでいますか?
jsf-2 - @ RolesAllowed、@ DenyAll Web層での使用?
私はJavaEE6仕様セクションEE.6.25を見ています。これは、Webコンテナーが次のアノテーションをサポートする必要があることを示しています:@ PermitAll、@ DenyAll、@ RolesAllowed、@ DeclareRoles、および@RunAs。
EE.6.25Java™Platform1.1要件の一般的な注釈
Common Annotations仕様は、この仕様を含む他のいくつかの仕様で使用されるJava言語注釈を定義します。これらの注釈を使用する仕様は、これらの注釈の要件を完全に定義します。アプレットコンテナは、これらの注釈をサポートする必要はありません。他のすべてのコンテナは、これらすべての注釈の定義を提供する必要があり、対応する仕様で説明され、次の表に要約されているように、これらの注釈のセマンティクスをサポートする必要があります。
表EE.6-5コンテナによる一般的な注釈のサポート
仕様をもう少し詳しく説明すると、「... RolesAllowed、PermitAll、およびDenyAllアノテーションをサポートするためにWebコンテナが必要になりました。サーブレット仕様とJAX-RS仕様に詳細が含まれています。」
JSF仕様については触れられていないので、これらのアノテーションはマネージドBeanでは使用できないと思います。なぜだめですか?
サーブレットやフィルターではないオブジェクトにWeb層で実装され、web.xmlでページレベルの宣言型セキュリティを使用するなど、横断的関心事はどのように行われますか?
java - Spring Security + JSR 250 +EJB3.1が機能しない
私のJEE6Webアプリケーション(主にCDI、EJB 3.1、およびJSF 2)はSpring Security 3を使用していますが、Spring依存性注入またはMVCは使用していません。ログインを処理するためにSpringAuthenticationProviderを実装しました。ログイン時に、カスタムビジネスロジックに応じてユーザーにロールを追加します。
ここで、JSR250アノテーションを使用してビジネスロジックを保護したいと思います。私のビジネスロジックは、ステートレスEJB(バージョン3.1)を使用して実装されています。
次のように、SpringのコンテキストXMLファイルをweb.xmlに含めます。
そして、XMLファイルの内容は次のとおりです。
私のクラスでは、クラスアノテーション(タイプレベル)を使用して、すべてのメソッドに特定の役割を持つユーザーのみがアクセスできるようにする必要があると述べています。
ただし、ロールROLE_USERのみを持つユーザーも、このクラスの任意の関数にアクセスできます。次のコードを使用してデバッグしているときに、ユーザーが間違った役割を持っていないことを確認しました。
予想どおり、権限コレクションにはROLE_GROUP権限が含まれていません。
私の注釈は完全に無視されているようですが、なぜですか?Springのpre-postアノテーションも試しましたが、効果がないようです。
spring - HTTP Basic および JSR-250 を使用した Spring Security JavaConfig: 403 Forbidden
@RolesAllowed
Annotationを使用する場合、構成はどのように見えるべきですか? ログインなどがないため、Webページで認証は必要ありません。管理パネルのみに http 基本認証が必要です。
これは私の現在のコードです:
しかし、正しい資格情報でログインした後、HTTP 403 が表示されます。
管理パネルのリクエスト中にログを記録します。
権限: