レガシープロジェクトをより現代的なプロジェクトに変換しようとしています。それは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のコンフィグレーションにリソースハンドラを追加しましたが、ここでは無視されます。
ありがとう、私もこれをチェックします。今、私はFilterChainProxyと似たようなことをしようとしています。ここにあります:https://github.com/spring-projects/spring-session/issues/278 – JSONStatham
はい、あなたもそれを行うことができます、フィルターチェーンにフィルターを入れます。春のセキュリティ要求の一致を使用します – chaoluo