新しいプロジェクトでは、セキュリティは常に最下位になる傾向があります。または、Spring のようなフレームワークを使用します。このフレームワークでは、セキュリティが既に組み込まれており、簡単に切り替えることができます。私は、Swing アプリケーションと Web アプリケーション (および JavaFX?) の両方にプラグインできるオープン セキュリティ フレームワークを見つけようとしています。プレーンな JAAS、JGuard、および JSecurity を見ましたが、複雑すぎて開始できませんでした。共有する推奨事項や経験はありますか?私は NB、Glassfish、および MySQL を使用しています。ありがとうスヴェン
7 に答える
私はちょうどこのhttp://shiro.apache.org/を見ました
Apache Shiro は、認証、認可、暗号化、およびセッション管理を実行する強力で使いやすい Java セキュリティ フレームワークです。Shiro のわかりやすい API を使用すると、最小のモバイル アプリケーションから最大の Web およびエンタープライズ アプリケーションまで、あらゆるアプリケーションをすばやく簡単に保護できます。
私は Web アプリケーションの JAAS で同様の調査を行いましたが、JAAS が Java の世界の従来の Web アプリケーションとは異なる「レイヤー」でセキュリティに対処するフレームワークであることに最終的に気付くまで、「心の障害」に遭遇しました。J2EE ではなく J2SE のセキュリティ問題に取り組むために構築されています。
JAAS は、Web アプリケーションよりもはるかに低いレベルで物事を保護するためのセキュリティ フレームワーク ビルドです。これらの例としては、JVM レベルで利用可能なコードとリソースがあります。したがって、JVM レベルでポリシー ファイルを設定するこれらすべての機能があります。
ただし、J2EE は J2SE の上に構築されているため、LoginModules や Callbacks など、JAAS のいくつかのモジュールが J2EE セキュリティで再利用されました。
一方、Spring Security としても知られる Acegi は、Web アプリケーションの保護の問題において、はるかに高い「レイヤー」に取り組みます。J2EE セキュリティ、つまり J2SE、したがって JAAS の上に構築されています。J2SE レベルのリソース (クラス、システム リソース) を保護しようとしている場合を除き、共通のクラスとインターフェイスを使用する以外に JAAS を実際に使用する方法はありません。多くの一般的な Web アプリケーションのセキュリティ問題を解決する Acegi または従来型の J2EE セキュリティを使用することに集中してください。
結局のところ、取り組んでいる J2EE-J2SE セキュリティ問題の「層」を理解し、その問題に対する書き込みツールを選択することが重要です。
OACC ( http://oaccframework.org )をご覧になることをお勧めします。OACC は、アプリケーションのセキュリティの問題を解決するために設計されました。ほとんどのフレームワークとは異なり、OACC はアプリケーションで承認関係を保存/管理できます。OACC の認可モデルは、Shiro や Spring Security よりも強力です。
JBoss からの代替手段があります。PicketBox の新バージョン。詳細はこちら: https://docs.jboss.org/author/display/SECURITY/Java+Application+Security
JBossでWebアプリケーションにストレスをかけるとapacheshiroは惨めに失敗します(たとえば、50スレッドの同時実行性を持つ単純なGETの200万リクエスト)。これを見つけるのは非常に残念でした。フィルタを使用すると発生します。