é¦å
ï¼æ们éè¦ä½¿å¾ConcurrentSessionFilterçæ并å¨spring-security.xmlé
ç½®ã
[html] view plain copy
<http auto-config="true" use-expressions="true">
<!-- Uncomment to limit the number of sessions a user can have -->
<session-management invalid-session-url="/index.do">
<concurrency-control max-sessions="1"
error-if-maximum-exceeded="false"/>
</session-management>
</http>
å
¶æ¬¡ï¼éè¦å¨web.xmlæè¿°æ件ä¸é
ç½®ä¸ä½¿å¾o.s.s.web.session.HttpSessionEventPublisherçæï¼è¿æ ·servelt容å¨å°ä¼éç¥Spring Security sessionçå½å¨æçäºä»¶ï¼éè¿HttpSessionEventPublisherï¼ã
[html] view plain copy
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<listener>
<listener-class>
org.springframework.security.web.session.HttpSessionEventPublisher
</listener-class>
</listener>
ç¶åï¼åå©äºä½¿ç¨session注åè·è¸ªï¼éè¿session并åæ§å¶ï¼ï¼å®ç°æ¾ç¤ºç³»ç»ä¸å½åæ´»è·ç¨æ·çæ°éã
让æ们å¨BaseControllerä¸æ·»å ä¸ä¸ªç®åçæ¹æ³ä»¥åbeanèªå¨ç»å
¥ã@Autowired
[java] view plain copy
@Autowired
SessionRegistry sessionRegistry;
@ModelAttribute("numUsers")
public int getNumberOfUsers() {
return sessionRegistry.getAllPrincipals().size();
}
å¯ä»¥çå°è¿æ´é²äºä¸ä¸ªè½å¤å¨Spring MVC JSP页é¢ä¸è½å¤ä½¿ç¨çå±æ§ã
æåï¼æ们å¯ä»¥æ·»å ä¸ä¸ªé¡µèfooter.jspå°JBCP Petsç«ç¹ä¸å¹¶ä½¿ç¨è¿ä¸ªå±æ§ã
[html] view plain copy
<body>
<div id="footer">
${numUsers} user(s) are logged in!
</div>
</body>
å¦æä½ éæ°å¯å¨åºç¨å¹¶ç»å½ï¼è½å¤å¨æ¯ä¸ªé¡µé¢çåºé¨çå°æ´»å¨ç¨æ·çæ°éã
温馨提示:答案为网友推荐,仅供参考