acegi、jsecurity、Starkセキュリティの中でgrailsに最適なセキュリティソリューションはどれですか?
4 に答える
JSecurityは、実際にはしばらく前にApache Kiという名前のApacheプロジェクトになりましたが、何らかの理由で名前の変更に満足せず、その後すぐにApacheShiroに変更しました。また、 StarkはSpring Securityの単なるgrailsプラグインラッパーであり、acegiはSpringSecurityプロジェクトの起源です。
では、どちらを使用しますか?
まず、Spring Securityは成熟したセキュリティAPIであり、すでに広く使用されているため、安定性、サポート、特にセキュリティの観点から、これは良い選択です。残念ながら、Shiroは、私が知る限り、まだ広く採用されていないため、これで少し失います。
第二に、セキュリティフレームワークが実際に動作する方法は非常に重要であり、アプリケーションを保護するためのお気に入りのスキームを実行できるようにする必要があります。たとえば、Shiroの動作方法が好きな人もいますが(このチュートリアル、特に「Quickstart.java」という見出しの下の部分を参照)、SpringSecurityのSpring風のものなどがないと生きていけない人もいます。基本的に、両方を試して、ユーザビリティの観点からそれらがニーズを満たしているかどうかを判断する必要があります。
第三に、実際のセキュリティを確認してください!Spring Securityは安全であることが保証されます。広く採用されているため、セキュリティの問題が簡単に隠されることはないため、Shiroはおそらく安全です。たとえば、Firefoxの脆弱性を参照して、ユーザーベースの増加が長期的にアプリケーションの実際のセキュリティにどのように影響し始めるかを確認してください。
これを終了するために、私があなたのために選択する必要がある場合、Spring Securityを選択します。これは、広く使用されており、安全であり、Grailsとすでに統合されていることが保証されているためです。JSecurity / Ki / Shiroはまったく悪くはなく、私はしばらくの間それを使用しましたが、現時点では、誰がどのような理由を知っているのか、そしてセキュリティフレームワークが受け入れられないという理由で、ある種の不安定な状態にあります。
編集:私がこれに答えてから1年半以上経ちました、それで私は戻って来て、私たちの会社がその高いプラグ性とその証明された機能性のために最近SpringSecurityを使うことに決めたと言う必要を感じました。もちろん、これは私に少し偏見を与えますが、いずれにせよ、SpringSecurityが進むべき道だと思います。
Eskoの答えは素晴らしく、包括的です。私は1か月前にさまざまなフレームワークの評価を行い、Spring Securityの経験があるにもかかわらず、基盤となるセキュリティフレームワークとしてShiroを選択しました。複雑な承認要件を作成する機能を備えたソリューションが必要でした。JSecurityのモデルは非常にシンプルですが、非常に強力です。
しかし、最終的に私を納得させたのは、Shiroの上にあるUIのレイヤーであるNimbleプラグインです。これにより、ユーザー、役割、グループ、セルフサービスアカウントの作成、電子メールなどを管理でき、アプリケーションに簡単に統合できます。そのすべてのコードを書く必要がないことは、私にとって大きな勝利でした。また、OpenId、Facebookなどとの統合も可能です。
NimbleがSpringSecurityで働いていたら、おそらくそれを選んだでしょうが、私にとっては大きな勝利だと思いました。
私は両方のフレームワークを使用しており、Springのアプローチと比較してShiroの動作方法が気に入っています。SpringSecurityがなぜそんなに人気があるのかわかりません。Shiroとは異なり、Spring Securityは、構成が必要なときはいつでもアプリケーション全体で実行されます。ほとんどのアプリケーションにとって、セキュリティは横断的関心事ではありませんか?もしそうなら、それを単一の場所に分離することは「よりクリーンなコード」ではないでしょうか?私の2セント。
お返事ありがとうございます。私は実際にgrailsアプリケーションでSpringSecurityを試しました。grailsプラグインを使用すると、非常に使いやすくなります。
よろしく。
ジョシュ