我使用Spring构建了一个REST API服务,并使用MongoDB启用了会话:
@Configuration
@EnableMongoHttpSession(maxInactiveIntervalInSeconds = Globals.SESSION_MAX_INTERVAL)
public class SessionConfig {
@Bean
public AbstractMongoSessionConverter createSessionConverterBean() {
return new JacksonMongoSessionConverter(Collections.singletonList(new GeoModule()));
}
}
我希望能够控制哪些连接应该生成会话。目前,每个HTTP请求都会生成一个会话,但是有些情况下并不需要会话,我不想在会话存储中混杂着永远不会使用的会话对象。
其中一种情况是独立的桌面应用程序,作为内容管理系统。这个应用程序不需要HTTP会话,因为身份验证是通过自定义授权头在应用程序端完成的。此应用程序也仅访问来自特定根路由映射的终端点:
公共流量路由到api.domain.com/pub
,CMS流量通过api.domain.com/cpi
路由。
如果能告诉Spring不需要为任何请求到达 /cpi
的会话就好了。如果更容易做到,桌面应用程序还提供了一个唯一的Origin
。
我的Web安全性看起来像这样:
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.anyRequest()
.permitAll()
.and()
.cors()
.and()
.httpBasic();
http.csrf().disable(); // Self-implemented
}
我已经搜索了很多地方,但没有找到任何信息。有人能指点一下我吗?
谢谢!