Dúvida básica - Controle de acesso entre dois sistemas

Bom pessoal, estou tentando ajudar um colega meu, a situação que ele me passou foi a seguinte:

Ele usa uma feramenta chamada Web Integrator(um “treco” pra vc programar em java sem usar java. No final ele gera a aplicação em jsp) e tomcat

Duas aplicações A e B, em contextos diferentes, houve a necessidade de A abrir uma janela em B

A preocupação do meu colega é a segurança.
Os requisitos são:

  • A janela da aplicação B deve apenas ser aberta por um link da aplicação A
  • Quando a página da aplicação B for aberta ela pode ser recarregada n vezes, contudo, se a janela de B for fechada, a aplicação “morre”

Exemplo de problema:
Alguém copia ou intercepta o valor passado de A para B, e depois o usa para abrir B diretamente, sem passar por A

Maneiras que ele pensou em resolver:

*A gera uma “chave” randomica, e armazena no banco de dados
*A passa “chave” via post (este valor não tem nenhum significado para quem o copiar/interceptar)
*B, pega esta “chave” e verifica se existe no banco
*B apaga a “chave do banco” (mesmo que alguém tenha pego a “chave”, não poderá usá-la)

Este procedimento por si, garante que B só será aberto por um link válido de A.

Porém falha referente ao recarregamento da página(lembram-se que ele faz uma verificação no banco, e que a “chave” já foi apagada de lá)

Ele pensou em dá o delete no banco somente no evento onunload da página, mas ele não acha esse evento javascript confiável

Como vocês resolvem um problema desse tipo no seu ambiente de trabalho, gostaria de sugestões para tentar adaptar à realidade dele…