Como interceptar o valor do cabeçalho HTTP personalizado e armazená-lo na WebSession do Wicket?

Preciso pegar um determinado valor de cabeçalho HTTP personalizado de cada solicitação e colocá-lo no WebSession para que ele fique disponível em qualquer página da Web posteriormente. (Acredito que a maneira do Wicket para fazer isso é ter uma classe personalizada estendendo a WebSession que tenha acessadores apropriados.)

Minha pergunta é,que tipo de filtro (ou outro mecanismo) eu preciso para poder interceptar o cabeçalho e acessar a WebSession por armazenar o valor?

Tentei fazer isso com um filtro Java EE normal, usando

CustomSession session = (CustomSession) AuthenticatedWebSession.get();

Mas (talvez não surpreendentemente), isso produz:

java.lang.IllegalStateException: 
    you can only locate or create sessions in the context of a request cycle

Talvez eu deva estender o WicketFilter e fazê-lo lá (posso acessar a sessão nesse momento?) Ou é necessário algo ainda mais complicado?

Claro, por favor, aponte se estou fazendo algo completamente errado; Eu sou novo no Wicket.

questionAnswers(1)

yourAnswerToTheQuestion