問題タブ [declarative-authorization]
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.
ruby - 宣言的承認 - コントローラーのすべてのアクションにアクセスを設定する方法は?
私はDeclarative Authorization gem を使用しており、authorization_rules.rbには次のルールがあります。
それぞれのコントローラーですべてのアクションへのアクセスを設定するよりエレガントな方法はありますか? 私はこれらの方法を試しました
しかし、何もうまくいきません。コントローラーですべてのアクションを設定するのに、すべてのアクションを惜しみなく入力するよりも良い方法はありますか?
jakarta-ee - Java EE宣言型セキュリティ、アプリケーションクライアントから保護されたBeanへの参照を取得
2つの質問について、私はあなたに相談したいと思います。
背景:テスト、Java EEアプリケーションを作成し、宣言型セキュリティを追加しました。アプリケーションはGlassfish3.1にデプロイされます。単体テストでは、ローカルインターフェイスを持つすべてのBeanに組み込みコンテナを備えたJUnitを使用しました。アプリケーションのエントリポイントである、唯一のリモートインターフェイスを持つSessionFacde Beanについては、SessionFaceBeanへの参照を取得する単純なクライアントを作成しました。SessionFacadeBeanにのみ適用したセキュリティアノテーション。
(質問1:セキュリティ付きの推奨される単体テスト戦略は何ですか?sessionFacadeに単純なアプリケーションクライアントを使用しても大丈夫ですか?(セキュリティ注釈が適用されていないため、他の(ローカル)Beanは影響を受けません。))
質問2:アプリケーションクライアントからSessionFacdeにアクセスするにはどうすればよいですか?ここにapplication-client.xmlのコードサンプルをコピーして、JNDIサービスへの参照を取得していただければ幸いです。これは私に多くの時間を節約するでしょう。質問はJavaEE6アプリケーションクライアントログインの質問と似ていますが、実際には推奨されないという説明(http://docs.oracle.com/cd/E18930_01/html/821-2418/beacm.html )を見つけました。フレームワークではなく開発者にセキュリティの負担を戻すためです。以下のテキストを参照してください。
「[...]プログラムによるログインにより、アプリケーション開発者はGlassFishサーバーでサポートされる認証メカニズムをバイパスし、認証データをセキュリティサービスに直接フィードできます。柔軟性はありますが、セキュリティの問題をある程度理解していない限り、この機能を使用しないでください。
このメカニズムはコンテナ管理の認証プロセスとシーケンスをバイパスするため、アプリケーション開発者は、制限されたリソースやメソッドにアクセスする前に、認証が確立されていることを確認する際に細心の注意を払う必要があります。ログイン試行のステータスを確認し、それに応じてアプリケーションの動作を変更することも、アプリケーション開発者の責任です。
プログラムによるログイン状態は、必ずしもセッションで持続したり、シングルサインオンに参加したりする必要はありません。[...] "
これまでお読みいただきありがとうございます。よろしく、タマス
備考:元の投稿を書いてから返答がないので、2番目の質問に答えれば十分だと思います。それは私が続けるのを助けるでしょう。ありがとう、タマス
ruby-on-rails-3 - Rails 3 - ユーザーが管理者の場合、declarative_authorization テストではどうですか?
ドキュメントで、この部分を見つけました:
これは良いことですが、現在のユーザーが管理者であるかどうかをテストする必要があり、そうであればテキストを表示します...
管理者なら?
この情報は、次のような協会から取得できます。
もし current_user.role == 0
しかし、これは少し汚い解決策です... Declarative Authorizationをよりクリーンでより良い方法でサポートしますか?
javascript - Cucumber の @javascript で declarative-authorization の「without_access_control」を使用する
私のfeatures/support/env.rb
ファイルには次のものがあります。
私は機能ファイルにこれを持っています:
そして、これはステップファイルで:
feature にタグを付けるまではすべて正常に実行され@javascript
、エラーが発生します。
モードwithout_access_control
で実行するときに尊重する方法を誰か教えてもらえますか?@javascript
同じ質問をする別の方法は、Declarative Authorization の組み込みのテストヘルパーwithout_access_control
をどのように操作rack_test
するかということだと思いますjs=true
。
ruby-on-rails - 宣言型承認を使用して、承認 rules.rb を強制的に再読み込みします。
宣言型承認を使用して動的承認を作成しようとしているため、ロールと権限をデータベースに保存しています。
私が抱えている唯一の問題は、承認ルールが 1 回しか読み込まれないことです。
コントローラーアクション内からルールをリロードするように宣言型承認を強制するにはどうすればよいですか?
ruby-on-rails - 宣言型認証:一部のフィールドのみの更新を許可する
アプリケーションのユーザー権限を管理するために宣言型承認を使用しています。
所有者が管理できる投稿モデルがあります。
ただし、モデルには次のものもあります。
投稿の作成者ではない一部のユーザーに公開を許可したいと思います。
ただし、オブジェクトの更新を許可することはできませんが、公開ステータス以外のフィールドを変更できるようにはなっていないはずです。
ただし、モデル内の一部のフィールドのみを編集できるようにする方法はないようです。
ruby-on-rails - 宣言型認証を使用したネストされたリソースの属性チェック
追加しようとしfilter_access_to
てattribute_check: true
いますが、モデルAssignment
がネストされてProject
おり、現在のユーザーがプロジェクトに割り当てられていることを確認して、割り当て(つまり、特定の割り当てだけでなく、すべての割り当て)を更新できるようにします。プロジェクト。
私には次の許可があります:
そして私のコントローラーでは:
問題は、割り当てのIDが見つからないため、インデックスページにアクセスできないことです。
私のモデルは次のとおりです。
ruby-on-rails-3 - Rails 3 + 宣言的承認: ネストされたアクセス許可
宣言型承認を使用しています。と という名前の 2 つのモデル/コントローラーがあるbatch
としtimetable_entry
ます。アクセス権限のあるユーザーがアクセス/batches/:batch_id (batches#show)
できるようにしたい/batches/:batch_id/timetable_entries (timetable_entries#index)
。
これまでのところ、私はこれを思いつきました:
ユーザーがアクセスできないため、これは私が望むものを達成しませんtimetable_entries#index
。私に何ができる?ありがとう!
ruby-on-rails-3 - Rails declarative_authorization project_admin ロール
declarative_authorization gemを使用して、プロジェクト管理者とプロジェクト コラボレーターの役割を作成しようとしています。
ユーザーとプロジェクトのマッピングを保持する「コラボレーター」というテーブルがあります。
モデル:
計画
ユーザー
協力者
project_admin および project_collaborator ロールの DSL を定義するためのガイダンスが必要です。私は次のことを思いつきました:
提案/ヘルプに感謝します。
ありがとう!
ruby-on-rails - declarative_authorizationでwith_permissions_toを使用する方法は?
私は次のモデルを持っています:
そしてそれを管理するために定義された2つの権限:
と
コンソールで試してみると:
何も返さず(空)、2レコードを返すと思います。
私は何が間違っているのですか?