2017-01-13 3 views
2

レガシープロジェクトをより現代的なプロジェクトに変換しようとしています。それはjspのサーブレットベースのアプリケーションでした、そして私たちはSpringに向かって動いています。私たちはjsp-sを提供し、多くの静的リソースを含んでいます。 私たちは、セッションストアとしてのRedisを使用している、それはフィルタのようにマッピングされています:springSessionRepositoryFilterからリソースを除外する方法は?

@Configuration 
@EnableRedisHttpSession(maxInactiveIntervalInSeconds = SpringSessionConfig.MAX_INACTIVE_INTERVAL_IN_SECONDS) 
@PropertySource(value = "classpath:redis.properties") 
public class SpringSessionConfig { ... } 

静的リソースは、多くの異なるディレクトリに広がっている...

<filter> 
    <filter-name>springSessionRepositoryFilter</filter-name> 
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>springSessionRepositoryFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

、との問題があること、このフィルタであり、それぞれのリソースごとに実行されますが、これは完全に理解できます。

このURLパターンからリソースを除外するスマートな方法はありますか?またはこのRepositoryFilterのためのいくつかの設定?

私が思いついた唯一の解決策は、大きなリファクタリングを行い、静的リソース用の適切な名前空間を作ることですが、今はあまりにも多くの労力が必要です。

また、Springのコンフィグレーションにリソースハンドラを追加しましたが、ここでは無視されます。

答えて

0

は、私はあなたが、あなたのweb.xmlにフィルタBean名を設定ファイル、代わりにEnableRedisHttpSession注釈のspringSessionRepositoryFilter豆のマニュアルを独自のフィルタを実装するためにspringSessionRepositoryFilterを拡張して、あなたのdoFilterInternal方法で除外したリソースを行う、と設定することができると思います。

+0

ありがとう、私もこれをチェックします。今、私はFilterChainProxyと似たようなことをしようとしています。ここにあります:https://github.com/spring-projects/spring-session/issues/278 – JSONStatham

+0

はい、あなたもそれを行うことができます、フィルターチェーンにフィルターを入れます。春のセキュリティ要求の一致を使用します – chaoluo

関連する問題