Como faço para preservar o fragmento uri no safari após o redirecionamento?

Meu aplicativo gwt / gae utiliza atividades e lugares. Para criar processos assíncronos (como redefinir uma senha ou verificar a propriedade de um endereço de email), uso um padrão em que o estado de uma atividade pode ser tokenizado e armazenado no armazenamento de dados, depois recuperado e retomado posteriormente. Para recuperar o token de estado, tenho um local que usa um ID de token aumentado como um argumento, o obtém do armazenamento de dados e, em seguida, navega até o local apropriado, conforme necessário, para continuar o processo. Isso me permite criar um link para um estado específico do meu aplicativo, que pode ser distribuído por email. por exemplo:

http://mydomain.com/#signup:anJlbmZyb0BldGhvc2VkZ2UuY29tfDEzNzQxOTIxNjU3NjQ=

Nesse caso, o link acima seria enviado para os endereços de email usados ​​durante a inscrição e o aplicativo retomaria a atividade de inscrição identificada pelo argumento hash.

Tudo funcionou bem até recentemente, quando adicionei um certificado SSL e https reforçado para todas as solicitações, adicionando o seguinte código ao meu web.xml:

<security-constraint>
    <web-resource-collection>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>

Esta restrição impõe https via (eu acredito) um redirecionamento 301 para a porta 443. Funciona como um encanto no Chrome, Firefox e IE .... no entanto safari parece cair o fragmento de url ao redirecionar ... Eu acho que você pode ver o meu problema ! Como faço para evitar que o safari solte o fragmento de URL?

Atualização 8.1.13

Depois de exaustivas pesquisas, acho que identifiquei a causa raiz, mas ainda não encontrei uma boa solução. Uma descrição completa do problema foi fornecida no memorando w3cManipulação de identificadores de fragmento em URLs redirecionados (1999)

Basicamente, a especificação http não estava clara quanto ao manuseio de fragmentos de url durante redirecionamentos 3xx; e safari escolheu largar o fragmento quando redirecionado. Veja o seguinte bug bugzilla:

https://bugs.webkit.org/show_bug.cgi?id=24175

O comportamento desejado é descrito pelos problemas do agente do usuário comum do w3c:

http://www.w3.org/TR/cuap#uri

Então, à luz de tudo isso, acredito que seja um problema de safári (webkit). O que não entendo é por que outros navegadores de webkit não são afetados? Existe uma solução conhecida?

questionAnswers(1)

yourAnswerToTheQuestion