Acessar objetos de sessao pelo Spring

Pessoal,

Tenho uma aplicacao, que apos o login de um usuario ser efetuado, preciso realizar uma consulta no BD e comparar algumas informacoes antes de liberar o acesso a area restrita de fato. Alguns dados que utilizo na consulta estao num bean de sessao que guarda informacoes da aplicacao e do cliente no momento do acesso (ip, tipo de aplicativo utilizado, cliente que requisitou, de onde veio, etc). Teria alguma maneira de carregar as informacoes do bean no Spring? Tentei usando ApplicationListener do Spring apos a confirmacao de login, mas por ali nao consigo acesso aos objetos de sessao, nao que eu saiba pelo menos, nao consegui usar de funcoes de servlet e do JSF. Tambem testei via filtro (documentacao do Spring), nao gostei, pq ele faz varias acessos ao filtro sem necessidade durante o uso do sitema e alem disso nao consigo realizar as consultas pelo Hibernate, alguma sugestao?

Codigo do Application Listener

public class SpringOnApplicationEvent implements ApplicationListener{
	public void onApplicationEvent(ApplicationEvent event) {
        if (event instanceof ContextRefreshedEvent) {
            System.out.println("EVENTO -> ContextRefreshedEvent");
        } else if (event instanceof HttpSessionCreatedEvent) {
            System.out.println("EVENTO -> HttpSessionCreatedEvent");
        } else if (event instanceof AuthorizedEvent) {
            System.out.println("EVENTO -> AuthorizedEvent");
        } else if (event instanceof AuthenticationSuccessEvent) {
            System.out.println("EVENTO -> AuthenticationSucessEvent");
        } else if (event instanceof InteractiveAuthenticationSuccessEvent) {
            System.out.println("EVENTO -> InteractiveAuthenticationSucessEvent");
            
            
            //aqui colocaria minhas rotinas, mas como acesso objeto de sessao pelo Spring?
            
            
        } else if (event instanceof HttpSessionDestroyedEvent) {
            System.out.println("EVENTO -> HttpSessionDestroyedEvent");
        } else {
            System.out.println("EVENTO -> foi disparado um evento desconhecido -> " + event.getClass());
        }
    }

}