Eu não uso o spring security, mas o que eu fiz na mão pode te dar uma idéia.
Tenho uma variável HashMap<Integer, Usuario> no contexto da aplicação, e quando o cabra faz o login, eu verifico se já existe, se não, apenas adiciona na variável e libero o acesso. Caso contrário, derrubo as 2 sessões.
Agora como derrubar a outra sessão se você não tem acesso a ela para fazer um simples invalidate. Eu registro no objeto usuario que ele precisa sair, ai tenho um filtro que ficar verificando as requisições, e caso alguma requisição tenha um usuário que precisa ser derrubado, eu direciono ele para a ação de logout.
Foi a maneira que encontrei, claro que pode ter outras mais simples por ai.