2016-05-23 15 views
0

これまでに見たJava EEの認可手法はすべて、ビュー層のみであり、主にJSFをベースにしています。基本的に、特定のURLパターンまたはJSFコンポーネントへのアクセスを制限します。Java EEを使用したサービスベースのセキュリティ

しかし、サービス上にセキュリティレイヤーを置くことをお勧めします。

  • ビュー(豆/ RESTful WebサービスをバックアップXHTML + JSF)
  • サービスサービス以来
  • エンティティとビジネスロジック
  • のDAO

:私の層は、このような何かを探しています私のビジネスロジックへのプロキシであり、ロジック自体が含まれていないため、アクセスコントロールに使用したいと考えています。こうすることで、各ビューテクノロジのセキュリティを個別に実装する必要はなく、URLパターン(維持するのはひどい)を気にする必要はありません。

私の好ましい解決策は、サービス上のクラスまたはメソッドの注釈です。一部のビューコードがアクセス権なしでアクセスしようとすると、例外が発生します(これは処理され、ログインフォームに転送する必要があります)。

私はこのようなものがありますか?

答えて

4

私の好ましい解決策は、サービス上のクラスまたはメソッドの注釈です。一部のビューコードがアクセス権なしでアクセスしようとすると、例外が発生します(これは処理され、ログインフォームに転送する必要があります)。

私はこのようなものがありますか?

はい。既に慣れ親しんだことを「アプリケーションレベル」のセキュリティといい、それは確かに一般的です。しかし、Java EEは長い間、代替または補助として組み込みの宣言メカニズムを提供してきました。これらは、Webアプリケーションレベルまたはコンポーネントレベルで機能します。詳細はここで説明するには広すぎますが、Java EEチュートリアルには3つの章があります。あなたはおそらくthe overviewから始めたいと思うでしょう。非常に高いレベルで

  • 宣言セキュリティ要件は、伝統的に配備記述子で表現されています。詳細は、保護されるコンポーネントまたはアプリケーションのタイプによって異なります。

  • 少なくともJava EE 6以降、コンポーネントソースの注釈を使用してセキュリティ宣言を行うこともできます。

  • ユーザー認証と承認のための主な組み込みメカニズムは、適切にはJava Authentication and Authorization Services(JAAS)です。これは実際にはJava SEテクノロジーなので、通常のアプリケーションにも使用できます。 Solaris/LinuxのPAM(Pluggable Authentication Modules)サブシステムで作業したことがある場合、JAASは概念をよく知っています。

  • 一部のJava EEコンテナおよび一部のアプリケーションフレームワークでは、独自のセキュリティメカニズムが提供されています。あなたの状況があなたにそのようなことを考慮させるなら、それは一見する価値があります。

+0

'>ユーザー認証と承認のための主な組み込みのメカニズムは[...](JAAS)です。 ' いいえ;その中で主に使用されている(サーブレット、EJB)は、それらの実装がJAASに依拠することを義務づけず、あるいは推奨することさえありません。そうした場合は、Java EEアプリケーション開発者が気にする必要のない実装の詳細です。 OPに追加機能が必要な場合は、代わりにJava EE固有の標準SPI(JASPIC、JACC)が使用されます。 – Uux

関連する問題