2011-07-26 3 views
3

私は、Javaコードからまっすぐに春のアプリケーションコンテキスト(またはスプリングコンテナ)なしで春のセキュリティWebフィルタを使用したいと思います。アプリケーションコンテキストなしでスプリングセキュリティフィルタを使用するにはどうすればよいですか?

これは可能ですか?別の春のライブサイクルメソッドを直接呼び出すことができますか?それを行う方法のサンプルがありますか(気にする異なるインターフェイスとその順序)?

+0

なぜそうしたいですか? – bluefoot

+0

私は春のセキュリティの機能を再利用したいが、コンテナのオーバーヘッドは使用しない。私はそうでなければコンテナは必要ないでしょう、このxmlコンセプトなどを紹介したくありません。 – chrisichris

答えて

3

私はそれが可能だと思いますそれはそれに値するものではありません。

Springは、Javaアプリケーションを構成する負担を払う複雑なフレームワークです。なぜSpringなしでSpringを使用したいのですか?

あなたの質問に関して、以前のSpringセキュリティーAcegiは、Springなしで使用できると主張しました。

これで試してみることができますが、主な問題はサーバーの起動時にアプリケーション全体を読み込むことになります。 ContextLoaderListenerを含む機能を複製する必要があります。

ではなく

<!-- Creates the Spring Container shared by all Servlets and Filters --> 
<listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener> 

の独自のリスナーを作成し、シメオンとして、あなたのアプリケーションのメインサーブレット(私はあなたが春のMVCを使用しないことを前提としているため)、およびセキュリティ・フィルタを設定してくださいが言った。

幸運。

また、Apacheを試すこともできます。SHIRO

+0

しかし、私はスプリングアプリケーションのコンテキストをインスタンス化したくありません。だからあなたと@サイメオンのようにpropablyには、春の安全は正しいことではないと言いました。私はフレームワークが新しい質問を投稿したよりもライブラリのための多くを探しています:http://stackoverflow.com/questions/6840986/any-library-for-authentication-in-a-java-web-app – chrisichris

5

私はあなたがすることはできません

春のアプリケーションコンテキストなしのスプリング・セキュリティのWebフィルタを使用します。

あなたweb.xmlにフィルター・チェーン・プロキシを定義するときので:DelegatingFilterProxyが実際にそこにあなたのcontextConfigLocation、有効な設定ファイルを見つけることを期待

<filter> 
    <filter-name>springSecurityFilterChain</filter-name> 
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> 
</filter> 

<context-param> 
    <param-name>contextConfigLocation</param-name> 

    <!-- This must be valid otherwise your .war deployment will fail --> 
    <param-value>WEB-INF/spring-contexts/spring-contexts.xml</param-value> 
</context-param> 
+0

デリゲートフィルタは(コンテキスト内の実際のチェーンを調べるので)わかりますが、実際のフィルタをインスタンス化して設定できますか? plain javaのExceptionTranslationFilterなどのようなものですか?私は春がいつもコンテナがどれほど非コンテナなのかを明示しています。 – chrisichris

+0

あなたは 'web.xml'でフィルターをクラスとして宣言することができ、個々のオブジェクトをインスタンス化することができます(最後には、春の文脈)。しかし、フィルタに必要なオブジェクト参照をどのように設定しますか? – bluefoot

+0

私は良い古いjava(実際にはmlm)コードですべてを設定し、それらをFilterChainProxyに似たカスタムフィルタチェーンを使って連鎖させ、web.xmlからそのコードを実行することを望みます。 – chrisichris

関連する問題