Ниже я говорю о пружинной защите (потому что acegi-security теперь является весенней защитой, и я предположил, что вы используете весеннюю безопасность).Более того, я протестировал эту конфигурацию с последней версией Spring Security
Поиск в: SessionRegistry
В связи с: security-session-management
на web.xml
<listener>
<listener-class>
org.springframework.security.web.session.HttpSessionEventPublisher
</listener-class>
</listener>
на примере XML-файла Spring Security app-security.xml
Фокус на безопасности: управление сессиями и последние два компонента
<security:http auto-config="true">
<security:intercept-url pattern="/user*" access="ROLE_ADMIN, ROLE_USER" />
<security:intercept-url pattern="/user/register.html" access="IS_AUTHENTICATED_ANONYMOUSLY" />
<security:intercept-url pattern="/user/activate.html*" access="IS_AUTHENTICATED_ANONYMOUSLY" />
<security:form-login login-page="/user/login.html" default-target-url="/index.html" authentication-failure-url="/user/login.html" />
<security:session-management session-authentication-strategy-ref="sas" invalid-session-url="/index.html" />
<security:remember-me data-source-ref="dataSource" />
<security:logout logout-success-url="/user/logout.html" invalidate-session="false" />
</security:http>
<bean id="sessionRegistry" class="org.springframework.security.core.session.SessionRegistryImpl"/>
<bean id="sas" class="org.springframework.security.web.authentication.session.ConcurrentSessionControlStrategy">
<constructor-arg name="sessionRegistry" ref="sessionRegistry" />
<property name="maximumSessions" value="1" />
</bean>
, затем в коде / контроллере
@Autowired
private SessionRegistryImpl sessionRegistry;
...
List<Object> allPrincipals = sessionRegistry.getAllPrincipals();
...
allPrincipals содержит всех онлайн-пользователей