【发布时间】:2017-05-28 20:51:53
【问题描述】:
我们正在尝试将旧项目转换为更现代的项目。这是一个基于 servlet 的带有 jsp 的应用程序,我们正朝着 Spring 发展。我们服务于 jsp-s,它们包含许多静态资源。 我们使用 Redis 作为会话存储,它像过滤器一样映射:
<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>
...
@Configuration
@EnableRedisHttpSession(maxInactiveIntervalInSeconds = SpringSessionConfig.MAX_INACTIVE_INTERVAL_IN_SECONDS)
@PropertySource(value = "classpath:redis.properties")
public class SpringSessionConfig { ... }
静态资源分布在许多不同的目录中,问题是,这个过滤器对每个资源都运行,这是完全可以理解的。
有没有一种聪明的方法可以从这个 url 模式中排除资源?或者这个 RepositoryFilter 的一些配置?
我想出的唯一解决方案是进行大重构,并为静态资源创建适当的命名空间,但现在,这太费力了。
我还在 Spring 配置中添加了资源处理程序,但这里忽略了它。
【问题讨论】:
标签: java spring jsp spring-security redis