Did you put the ConcurrentSessionFilter inside the http tag?
Code:
The ConcurrentSessionFilter requires two properties, sessionRegistry, which generally points to an instance of SessionRegistryImpl, and expiredUrl, which points to the page to display when a session has expired.
In the example code (from the reference)
Code:
<http>
<custom-filter position="CONCURRENT_SESSION_FILTER" ref="concurrencyFilter" />
...
<session-management session-authentication-strategy-ref="sas"/>
</http>
There's a reference to a session authentication strategy:
Code:
<beans:bean id="sas" class=
"org.springframework.security.web.authentication.session.ConcurrentSessionControlStrategy">
<beans:constructor-arg name="sessionRegistry" ref="sessionRegistry" />
<beans:property name="maximumSessions" value="1" />
</beans:bean>
Which has a reference to a sessionRegistry.
Does yours have a reference to a sessionRegistry?
Code:
<sec:session-management session-authentication-error-url="/loginWindow.zul?max_open_session=1">
<sec:concurrency-control max-sessions="1" expired-url="/loginWindow.zul" error-if-maximum-exceeded="true"/>
</sec:session-management>