我有一个Sping Boot 1.5应用程序,我在pom.xml中添加了Spring-Session。我正在示例化CookieSerializer
类的两个示例,以满足我在配置类中的需要。
但是当应用程序启动时,我收到以下错误消息:
Parameter 0 of method setCookieSerializer in org.springframework.session.config.annotation.web.http.SpringHttpSessionConfiguration required a single bean, but 2 were found:
- authCookieSerializer: defined by method 'authCookieSerializer' in class path resource [nextgen/config/SpringHttpSessionConfig.class]
- sessionCookieSerializer: defined in BeanDefinition defined in class path resource [nextgen/config/SpringHttpSessionConfig.class]
如果我还想使用CookieSerializer
bean做其他事情,我该如何使用SpringSession?我是否被迫将CookieSerializer
定义为@Primary
bean,以便自动连接到SpringSession配置类中?
我的配置类:
@Configuration
public class SpringHttpSessionConfig {
private Logger logger = LoggerFactory.getLogger(SpringHttpSessionConfig.class);
@Bean(name="authCookieSerializer")
public CookieSerializer authCookieSerializer() {
DefaultCookieSerializer serializer = new DefaultCookieSerializer();
serializer.setCookieName("auth");
serializer.setDomainNamePattern("^.+?\\.(\\w+\\.[a-z]+)$");
serializer.setCookiePath("/");
return serializer;
}
@Bean(name="sessionClassicCookieSerializer")
public CookieSerializer sessionCookieSerializer() {
DefaultCookieSerializer serializer = new DefaultCookieSerializer();
serializer.setCookieName("JSESSIONID");
serializer.setDomainNamePattern("^.+?\\.(\\w+\\.[a-z]+)$");
serializer.setCookiePath("/classic");
return serializer;
}
网址:application.properties
spring.session.store-type=hash-map
我错过了什么明显的东西吗?或者更确切地说,SpringSession配置需要CookieSerializer的什么定义,以及如何在不将其作为“主”bean的情况下为SpringSession配置bean指定它?或者我别无选择,只能将“主”CookieSerializer定义为我希望注入到SpringHttpSessionConfiguration
类中的CookieSerializer?
1条答案
按热度按时间jjjwad0x1#
我不确定这个答案是不是你的意思
我最近遇到了一个类似的问题,我的应用程序有2个登录页面为2个不同的用户类型,并需要配置不同的会话cookie最大年龄为这2个登录页面。
我想到的一个方法是创建两个不同的DefaultCookieSerializers示例。然而,Spring似乎不允许这样做
幸运的是,我找到了另一种选择。
通过在spring安全配置中注册您的自定义
AuthenticationSuccessHandler
,并在onAuthenticationSuccess
方法中设置session maximum inactive interval。你可以在这里阅读更多:https://stackoverflow.com/a/57598611/5718493