問題タブ [jacc]
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.
security - JACC プロバイダーは、デプロイされているサーバーのプリンシパルからロールへのマッピング機能をどのように使用できますか?
私はJACC
プロバイダーを書いています。
途中で、これはPolicyConfiguration
.
はPolicyConfiguration
、どの権限がどの役割に付与されるかなど、アプリケーション サーバーから構成情報を受け入れる役割を果たします。これは、現在のユーザーとそのユーザーが何をしようとしているのかについての情報Policy
を渡されたときに、後で承認の決定を下せるようにするためです。
ただし、PolicyConfiguration
役割とその権限の間のマッピングを維持し、Principals
それらの役割に割り当てられることは、の (凶悪な) 契約の一部ではありません。
通常、常に、実際には、アプリケーション サーバーがこのマッピングを格納します。たとえば、Glassfish では、Java EE モジュールで などをsun-web.xml
提供することによって、このマッピングに影響を与えます。(これらのベンダー固有のファイルは、たとえば、のアプリケーション ロールが割り当てられるグループであるsun-ejb-jar.xml
などの責任を負います。)superusers
admins
これらのファイルが提供する機能を再利用したいと考えており、できるだけ多くのアプリケーション サーバーで再利用したいと考えています。
これは、完全に恣意的に、この問題に対する IBM の見解であり、私がやりたいことは本質的に不可能であるという私の疑いを裏付けているようです。(この特定の Java EE コントラクトは、それが印刷されている紙の価値がないという私のケースに対する追加の弾薬です。)
私の質問:このプリンシパルからロールへのマッピング情報を、まず、Glassfish および JBoss 内から取得するにはどうすればよいPolicyConfiguration
ですか? 私が気付いていない標準的な方法があれば、私はすべて耳にします。
security - EJBセキュリティカスタムJACCプロバイダー
私たちのプロジェクトには非常に詳細な承認パターンがあります
そのため、独自のJACCプロバイダーを実装する必要がありました。
現在、EJBのセキュリティに問題があります。
私はEJBメソッドを持っていて、それに基づいてアクセスを制限したい
その引数値について
たとえば、delete(String arg1)
EJBメソッドについて考えてみます。
ユーザーがそれを実行できるようにしたいarg1=='something'
それ以外の方法で実行することはできません
メソッドの引数値にアクセスするにはどうすればよいですか?
ありがとう
jakarta-ee - EJB 3.1 - javax.security.auth の実装
私が理解しているように、 javax.security.auth は認証と承認のための API です。
セキュリティはコンテナー プロバイダーによって実装されるべきであり、Bean プロバイダーは、JSR が推奨するように、Bean の単純な注釈 ( など)@javax.annotation.security.RolesAllowed
でそれを使用できることを理解しています。@PermitAll
私の質問: これは単に、コンテナーにデプロイしないとセキュリティをテストできないことを意味します。javax.security の外部の 3 番目の実装を使用して、何らかの方法でテストから Bean に注入し、そこからセキュリティを伝播してテストする方法はありますか?
これは、JPA 実装または外部トランザクション マネージャーを単体テストからテスト用の Bean に注入する方法とほとんど同じです。
PS: これが可能かどうかを確認したいだけです。可能であれば、他の開発への道を開く可能性があります。このテストは、Bean を OpenEJB や Arquillian などの組み込みコンテナーにデプロイすることで簡単に実行できることを理解しています。
security - Custom isUserInRole implementation with RDBMS
I'm developing a Java EE 6 applications using Glassfish 3.1.1 as my app server. I'm using declarative and programmatic security. I've defined several roles at my deployment descriptor, and defined all security constraints.
I was using JDBCReal, and now I've changed it to an LDAPRealm. So I would like to manage the user-group mapping without relying on the LDAP groups. In other words, I want to authenticate to the LDAP but authorize using a RDBM, asking if the current user belongs to X group.
I thought there would be a way to "override" the isUserInRole method. While searching I've heard of things like JACC and I found out that there are ways to plug a custom JACC provider or something like that to the app server, but I couldn't find any custom JACC implementation and I have no idea how to do that (or event if it would work..)
security - Glassfish Security - jdbcRealm: 「remember-me」の実装方法
Glassfish V3 および Java EE 6 で jdbcRealm を使用しており、Cookie ベースの「Remember-Me」を実装したいと考えています。
しかし、JACC セキュリティ チェックの前にフィルターを設定できないようです。何か案は?
glassfish-3 - JACC ポリシー プロバイダー: パーミッション チェックに失敗しました パーミッション (" ("java.security.SecurityPermission" "setPolicy") ")
jsf2.0 Web アプリを glassfish3.1.2 にデプロイすると、正常に動作し、ログイン メカニズムも正常に動作します。しかし、ログイン時に同僚のマシンのglassfish3.1.2にデプロイしようとすると、同じアプリでJACC権限チェックの失敗エラーが発生します。JACC パーミッションが呼び出されないようにする方法を教えてください。grant.policy ファイルは、生成されたフォルダー内に生成されます。また、プログラム的に、アプリケーションのポリシーを作成しません。
jakarta-ee - JAAS ログイン モジュールで HttpSession/Request を取得する
ログインモジュールで HttpSession または Request を取得しようとしています。JACCは既に試しましたが、うまくいきませんでした。
ログインウィンドウにキャプチャを配置する必要があるため、これが必要です。たぶん、JAAS の忍者の中には、それを行うためのより良い方法を知っている人もいるでしょう。私はそれを行うためにカプチャを使用しています。
前もって感謝します。
jakarta-ee - カスタム SecurityContext を使用した Glassfish @RolesAllowed
私が尋ねようとしている質問は少しトリッキーで、まだ答えが見つかりません。間違ったものを探しているからかもしれません。しかし、私はあなたがこれについて私を助けてくれることを願っています.
次のチュートリアルを使用して、基本的なユーザー/パスワード認証の代わりにトークンを使用するカスタム SecurityContext を実装しました。
基本的に、アプリケーションに送信されるすべての HTTP 要求で ResourceFilter を注入する ResourceFilterFactory を初期化して注入します。
この ResourceFilter は、リクエスト内の「Authentication」ヘッダーを検索し、そのコンテンツを取得してから、ユーザーを認証します。ユーザーが認証されると、SecurityContext を使用してリクエストに挿入されます。
EJB として機能するようにコードを変換しました。
コードは次のとおりです。
web.xml
ResourceFilterFactory.java // このクラスは EJB SecurityContextFilter を注入します
SecurityContextFilter.java // この EJB は、サーバーが受信する HTTP リクエストごとに呼び出されます。「Authentication」ヘッダーをチェックし、トークンに関連付けられたユーザーを取得します。
SecurityContextImpl.java // このクラスはリクエストに挿入され、@RolesAllowed アノテーションで使用される isUserInRole() メソッドを持ちます
ExternalUser.java // 作成され、データベース ユーザー情報が取り込まれたエンティティ。
最後に、Jersey WebService :
WebService はうまく機能します。注入された SecurityContext を使用して ExternalUser インスタンスを取得します。しかし、@RolesAllowed({"arole"})
注釈を使用すると、Glassfish で次のエラーが表示されます。
作成した SecurityContextImpl を使用するように Glassfish を構成する必要があると思います。正しく挿入され、コードでそのメソッドを呼び出すことができるため、なぜ機能しないのかわかりません。
メソッドを手動で使用することもできますがisUserInRole()
、問題に直面するのではなく、問題を回避するだけです。長い投稿で申し訳ありませんが、これで私を助けるために必要なすべての情報が得られたと思います. よろしくお願いいたします。
エメリック