2012-05-01 6 views
2

コンテキスト意見:操作項目がある売り手のリスト項目</li> <li>インスタンス・レベルのセキュリティ

  1. コマース市場のためのアーキテクチャの青写真:: setPrice
  2. アイテムや顧客サービス担当者の売り手アイテムの価格を変更することができます。
  3. #3のセキュリティチェックは、セキュリティチェックのカバレッジを最大にするために、アイテムのデータアクセスレイヤの近くに実装されています。

ロトの人々のは直交懸念などのセキュリティについてお話したいが、それは容赦なく、ドメインモデルに結びついているので、私は、インスタンス・レベルのセキュリティを考える場合は特にそれとボード上の(現在は?)ないんだけど。最終的には、を好んでいます。#3のセキュリティインバリアントは、(コードまたはSpring SecurityのELアノテーションによって)コードに明示的に記述されている必要があります。私はそのようなセキュリティインバリアントがビジネスロジックの一部であると考えます。私はまた、開発者の顔にセキュリティが必要です。 IMOの責務とは正反対のものではありません。

@PreAuthorize("hasRole('CSR_ITEM_WRITER') or #item.seller.id == principal.id') 
public void setPrice(Item item, Money price) { ... } 

私はそれがセキュリティモデルを進化さになる(しかし、そのような悪いことは、それが間違って得ることの影響を考慮することであるとき、これは硬直の一定量を作成し、実現:私のような何かを書くかもしれません

? )

また、CS担当者が売り手になる必要があるアプローチについても説明しました。それにはある程度の清潔さがあります(実際には、ユースケースではなく、ドメインの周りにセキュリティモデルが集中しています)。 (誰かを代理して行動しているかどうかを検出するためにN.B.十分な監査が行われます)

意見はありますか?

答えて

0

私はあなたが正しいことをしていると思います。あなたはセキュリティが直交性の問題であると言うとき、何に直交するのでしょうか?これがビジネスロジックの一部でなければならないと言うと、あなたは110%です。

私はREPと売り手を分けています。どちらもユニークな役割です。この特定のケースで重複が発生します。

このコンテキストでセキュリティの重要度を考えれば、オプションに付随する役割を考慮して適切な結果を示す単体テストの嵐を書くことが期待されます。

0

あなたがやっていることは良いアイデアだと思います(私は現在何か似たようなことをしています)。

それはいくつかの利点を持っているように私はそれをはるかにグローバルであるとして、あなたのセキュリティ・メカニズムを簡単に変更することができます

  1. 平野注釈の上に(hereを参照)春のセキュリティでPermissionEvaluatorコンポーネントを見てみるために、あなたをアドバイスう
  2. セキュリティ評価は、監査ログ/監視/を使用して簡単に拡張できます...
  3. 評価者の実装では、これまでのところ、私はこのアイデアのは直接の欠点を発見したユニットテスト(注釈が動作するように実行されている春のコンテキストを必要とするので、彼らは唯一の統合テストで試験することができる)

することができます。

関連する問題