2013-03-31 4 views
9

OSGiサービスとCXF Webサービスのロールベースのセキュリティを可能にするセキュリティフレームワークを探しています。 私は既に春のセキュリティを使用していましたが、現在は青写真に切り替えたので、それは私が理解する限りオプションではありません。アクセスルールを設定するには、主に標準@RolesAllowed annotationを使用したいと思います。だから私の最善の出発点は何ですか?私はこれをブループリントの拡張として実装することも考えましたが、私は既存のソリューションを好むでしょう。OSGiのロールベースのセキュリティ

+0

私はKarafで動作する私のアプリケーションでShiroを設定しました。私はセキュリティマネージャを設定することができますので、DBに保存されている資格情報を使ってログイン/ログアウトすることができます。今私はそれらの注釈を使用する方法を見つけるのに苦労しています。あなたは解決策を見つけましたか? – jhamon

+0

私は最後に白を使用しませんでした。代わりに私はCXF JaasLoginFeatureを使用しました。同じスレッドから取得できる資格情報を使用してjaasログインを行います。たとえば、aries blueprint-authzモジュールはjaasログインを使用します。 –

+0

CXF JaasはShiroが提供する 'Session'と同様の機能もサポートしていますか? – jhamon

答えて

8

あなたは代わりにApache Shiroに行くことをお勧めします。http://shiro.apache.org/

認証、承認、暗号化、およびセッション管理のための簡単なAPIを提供します。また、OSGIコンテナ内に簡単にデプロイすることもできます。 Apacheの四郎のいくつかの長所は、私が(@RolesAllowed、@PermitAll、@DenyAll)JAASとJava EE annoationsに基づいて承認のための青写真拡張を作成した平均時間では、ここでApache Shiro vs Java EE native APIs

+0

私は調査しているフレームワークのリストにあります。 OSGiのためにそれを設定する方法についていくつかの文書がありますか?特に私は、単純なOSGiサービスとCXFサービスのためにそれを使用する方法に関するいくつかのサンプル/ヒントを探しています。私が見つけた例は、常にjava web(サーブレット)アプリケーションを参照しています。 たとえば、OSGiサービスを作成する場合、shiroを有効にする方法と、RolesAllowedアノテーションをどのように使用するのですか?あるいは、私がOSGiサービスを呼び出すと、どのように認証するのですか?私は、私の認証情報を保持するいくつかのスレッドローカルがあると思います。 –

5

記載されています。任意の青写真ファイルに拡張子を追加することができます。次に、これらの注釈のためにすべてのBeanをスキャンし、検出された場合は代行受信を行います。既存のJAASコンテキストを使用して、ユーザーのロールを取得します。

これは、JAASログインを行うための前提条件です。私は基本的なauthまたはwsセキュリティのユーザー名プリンシパルに基づいてユーザーをログインするCXF JAASAuthentication機能も作成しました。このモジュールは、Apache Karaf JAASサポートとともに動作します。だから、すべてのカラフユーザーとロールが適用されます。

認証モジュールを含む牡羊の青写真のリリースが終わったら、このすべての使い方を示すチュートリアルを作成します。あなたがそれを試して、あなたが持っている問題を報告するならば、私は幸せになるはずです。

Btw。 karafのもう1つのアプローチは、karaf 3+に組み込まれているOSGiサービスの役割ベースのアクセス制御です。アノテーションでは機能しませんが、使いやすいです。 http://coderthoughts.blogspot.de/2013/10/role-based-access-control-for-karaf.html

+0

クリスチャン、私は本質的にこれ(あなたの青写真の拡張子を意味する)と同じことに興味を持っているので、あなたが行ったことのリンクがあります。ありがとう。 –

+0

これはhttps://github.com/cschneider/Karaf-Tutorial/blob/master/cxf/personservice/server/src/main/resources/OSGI-INF/blueprint/blueprint.xmlに役立ちます。コメントアウトされた設定はauthzモジュールを有効にして@RolesAllowedを許可し、JAASAuthenticationFeatureはログインを処理します。 –