Java Spring安全性并发会话:未能生成;“最大会话数”;字段可配置
我需要在我的web应用程序中允许并发会话控制,并设置可配置字段“最大会话”。我的配置如下所示:Java Spring安全性并发会话:未能生成;“最大会话数”;字段可配置,java,spring,spring-security,Java,Spring,Spring Security,我需要在我的web应用程序中允许并发会话控制,并设置可配置字段“最大会话”。我的配置如下所示: <security:session-management> <security:concurrency-control max-sessions="${maxConcurrentSessionsCount}" session-registry-ref="sessionRegistry" expired-url="/handleInvalidatedSession.gs4tr"
<security:session-management>
<security:concurrency-control max-sessions="${maxConcurrentSessionsCount}" session-registry-ref="sessionRegistry" expired-url="/handleInvalidatedSession.gs4tr"/>
</security:session-management>`
我成功地配置了许多其他东西,如“记住我”中的“令牌有效性秒”和“记住我cookie”等。
你知道怎么解决问题吗?在互联网上搜索几天寻求帮助,但失败了
编辑:
在“services.properties”中配置:
“MaxConcurrentSessionCount=2”
在启动应用程序时,它会引发下一个错误:
No, it doesn't. It throws next ERROR on starting app:
017-09-14 15:46:47724错误[org.gs4tr.projectdirector.service.context.ContextLoaderListener][localhost-startStop-1][user:]
org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException:类路径资源[org/gs4tr/foundation/modules/webmvc/spring/applicationContext security default.xml]的xml文档中的第75行无效;嵌套异常为org.xml.sax.saxpasseeption;行号:75;栏目号:72;cvc数据类型有效。1.2.1:“${MaxConcurrentSessionCount}”不是“integer”的有效值。
位于org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:399)
位于org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:336)
位于org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:304)
位于org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:181)
位于org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:217)
位于org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:188)
位于org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:125)
位于org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94)
位于org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:129)
位于org.springframework.context.support.AbstractApplicationContext.AcquitainFreshBeanFactory(AbstractApplicationContext.java:537)
位于org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:452)
位于org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403)
位于org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)
位于org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106)
位于org.gs4tr.projectdirector.service.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:73)
位于org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4811)
位于org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5251)
在org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)这是max session属性的定义:
<xs:attribute name="max-sessions" type="xs:positiveInteger">
<xs:annotation>
<xs:documentation>
The maximum number of sessions a single authenticated user can have open at the same time. Defaults to "1".
</xs:documentation>
</xs:annotation>
</xs:attribute>
单个经过身份验证的用户可以同时打开的最大会话数。默认为“1”。
如您所见,属性的类型是positiveInteger
,不允许使用SpEL
SpEL(例如获取属性值)是一个字符串,在某些情况下,您可以:
可以使用如下所示的表达式设置属性或构造函数arg值
这是最大会话属性的定义:
<xs:attribute name="max-sessions" type="xs:positiveInteger">
<xs:annotation>
<xs:documentation>
The maximum number of sessions a single authenticated user can have open at the same time. Defaults to "1".
</xs:documentation>
</xs:annotation>
</xs:attribute>
单个经过身份验证的用户可以同时打开的最大会话数。默认为“1”。
如您所见,属性的类型是positiveInteger
,不允许使用SpEL
SpEL(例如获取属性值)是一个字符串,在某些情况下,您可以:
可以使用如下所示的表达式设置属性或构造函数arg值
所以你得到了警告,但它有效吗?您是否在某处定义了
maxConcurrentSesionsCount
参数?IntelliJ IDEA意识到了吗?@Kayaman看到编辑有问题。所以你得到了一个警告,但它有效吗?您是否在某处定义了maxConcurrentSesionsCount
参数?IntelliJ IDEA意识到了吗?@Kayaman请参阅相关编辑。