Как сохранить фрагмент URI в сафари при перенаправлении?

Мое приложение gwt / gae использует действия и места. Чтобы создать асинхронные процессы (например, сброс пароля или подтверждение владения адресом электронной почты), я использую шаблон, в котором состояние активности можно разбить на токены и сохранить в хранилище данных, а затем извлечь и возобновить позже. Чтобы получить токен состояния, у меня есть место, которое принимает в качестве аргумента расширенный идентификатор токена, извлекает его из хранилища данных, а затем перемещается в соответствующее место по мере необходимости для возобновления обработки. Это позволяет мне создать ссылку на конкретное состояние моего приложения, которую можно распространять по электронной почте. например:

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

В этом случае вышеуказанная ссылка будет отправлена на адреса электронной почты, использованные во время регистрации, и приложение возобновит действие регистрации, определенное аргументом хеша.

До недавнего времени все работало хорошо, когда я добавил сертификат SSL и принудительно установил https для всех запросов, добавив следующий код в мой файл 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>

Это ограничение применяет https через (я полагаю) перенаправление 301 на порт 443. Работает как Charm в Chrome, Firefox и IE .... однако safari, кажется, отбрасывает фрагмент URL при перенаправлении ... Я думаю, вы видите мою проблему ! Как я могу предотвратить сафари от удаления фрагмента URL ?!

Обновление 8.1.13

После исчерпывающих исследований, я думаю, что я определил первопричину, но мне еще предстоит найти хорошее решение. Подробное описание проблемы приведено в памятке w3c.Обработка идентификаторов фрагментов в перенаправленных URL (1999)

По сути, спецификация http была неясной в отношении обработки фрагментов URL во время переадресации 3xx; и сафари решил отбросить фрагмент при перенаправлении. Смотрите следующую ошибку в bugzilla:

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

Желаемое поведение описывается проблемами агента пользователя w3c:

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

Итак, в свете всего этого, я считаю, что это проблема сафари (webkit). Чего я не понимаю, так это почему не влияют другие браузеры webkit? Есть ли известный обходной путь?

Ответы на вопрос(1)

Ваш ответ на вопрос