19

JSF2.0を使用して構築されたアプリケーションを保護しようとしています。

Shiro、Spring Security、owaspのesapiなどのセキュリティの代替手段をいつ人々が選択してコンテナマネージドセキュリティを残すのかについて、私は混乱しています。Stack Overflowに関するいくつかの関連する質問を見て、過去にJSF開発者がコンテナベースのセキュリティを好んでいたことに気づきました。しかし、ApacheShiroの使用も強くお勧めします。私はセキュリティの問題に関しては初心者であり、関連する問題が何であるか、そしてそれらにどのように対処するかがわかりません。したがって、私はデフォルト設定/それ自体でセキュリティ問題のほとんどを処理するものを探しています。

アプリケーション要件に関しては、さまざまな役割を持つユーザーがさまざまなページセットにアクセスでき、役割に基づいてそれらのページでさまざまなレベルの機能を使用できるソーシャルアプリケーションがあります。

その場合、私が一緒に行くのに良い選択肢は何だと思いますか?

使いやすく、初心者のほとんどのことをやってくれるので、私は個人的にシロを選ぶと確信しています。

4

3 に答える 3

17

Shiroについて私が気に入っているのは、権限ベースのセキュリティを設定するのが本当に簡単なことです。JAASは、役割に大きく依存しています。これは、皮肉なことに、エンタープライズアプリよりもコンシューマーWebアプリの方が便利な粒度です(要件からわかるように)。

  • アプリケーションサーバーは、シングルサインオン、組み込みのログインモジュールなど、JAASに加えていくつかのサービスを提供するのが一般的であるため、権限の粒度が要件でない場合は、JAASを使用する必要があります。

  • 前回チェックしたとき、Shiroも相互SSL認証(デジタル証明書を使用)をサポートしていませんでしたが、おそらくそれを使用していないでしょう...

  • Shiroを使用する場合、JavaEEのセキュリティ構成はほとんどの重要なセットアップでベンダー固有である傾向があるため、アプリはおそらくアプリケーションサーバー/サーブレットコンテナ間でより移植性が高くなります(皮肉なことに!)。

全体として、指定した要件に基づいて:

  • AppServer(GlassFish、JBoss)の使用:JAAS(ootb authc / authz、組み込みloginmodules)
  • サーブレットコンテナ(Jetty / Tomcat)の使用:Shiro(セットアップと使用が簡単)

それが役に立てば幸い :)

于 2011-10-16T19:31:45.777 に答える
4

Apache Shiroについては、次の点を除いてまったく何も知りませんが、引用した内容は、「[JAAS]はプログラマーだけが変更できる静的定義が必要」、「JAASは仮想マシンレベルの懸念に強く結びついている」、そしてJAASがユーザーと役割に関するものではないという含意は、単に誤りです。コンテナマネージドセキュリティから離れて、説得力のあるものにしたいと思います。これはサーブレット仕様の一部であるため、任意のコンテナでサポートされている必要があります。それはよく理解されています。サードパーティのないJDKクラスでサポートされています。...そしてそれは私のために働きます;-)

于 2011-10-16T09:29:21.190 に答える
2

SpringSecurity(SS)が認証および承認フレームワークになることを決定しました。主な理由は、SSがOpenIDとOAuthを実行するためです。ただし、アクセス許可/グループ/ユーザー/エンティティシステム用にかなりカスタマイズする必要があります。'EntityManager / Entity'レベル、サービスレベル、およびWeb/APIレベルで承認を行う予定です。「ドアをロックしますが、奥の部屋にある3トンの金庫に宝石を置いてください」後半の多くのシロは、はるかにうまく処理します。しかし、openid4j/openauth4jをShiroに統合しようとしても気が進まない。

干渉やコードの膨張なしに、両方の機能を選択して選択するのは本当に素晴らしいことです。それが最良の選択です。

PS、Springは、JSFとの統合など、他にも多くのことをプレートにもたらします。そのため、Springには多くの魅力があります。

于 2012-12-28T02:52:50.440 に答える