Jak zachować fragment uri podczas safari po przekierowaniu?

Moja aplikacja gwt / gae wykorzystuje działania i miejsca. Aby utworzyć procesy asynchroniczne (takie jak resetowanie hasła lub weryfikacja prawa własności do adresu e-mail), używam wzorca, w którym stan aktywności można tokenizować i przechowywać w magazynie danych, a następnie pobrać i wznowić później. Aby pobrać token stanu, mam miejsce, które pobiera argument jako token rozszerzony, pobiera go z magazynu danych, a następnie przechodzi w odpowiednie miejsce, aby je wznowić. Dzięki temu mogę utworzyć link do określonego stanu mojej aplikacji, który może być rozpowszechniany za pośrednictwem poczty elektronicznej. na przykład:

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

W takim przypadku powyższy link zostanie wysłany na adres e-mail użyty podczas rejestracji, a aplikacja wznowi aktywność rejestracyjną określoną przez argument skrótu.

Wszystko działało dobrze do niedawna, kiedy dodałem certyfikat SSL i wymuszony https dla wszystkich żądań, dodając następujący kod do mojego pliku 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>

To ograniczenie wymusza https poprzez (wierzę) przekierowanie 301 do portu 443. Działa jak urok w Chrome, Firefox i IE .... jednak safari wydaje się usuwać fragment URL po przekierowaniu ... Myślę, że możesz zobaczyć mój problem ! Jak zapobiegać upuszczaniu fragmentu adresu URL przez safari ?!

Aktualizacja 8.1.13

Po wyczerpujących badaniach, myślę, że zidentyfikowałem przyczynę, ale jeszcze nie znalazłem dobrego rozwiązania. Dokładny opis problemu został przedstawiony w notatce w3cObsługa identyfikatorów fragmentów w przekierowanych adresach URL (1999)

Zasadniczo specyfikacja http nie była jasna co do obsługi fragmentów adresu URL podczas przekierowań 3xx; i safari wybrało upuszczenie fragmentu po przekierowaniu. Zobacz następujący błąd bugzilli:

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

Pożądane zachowanie jest opisane przez problemy agenta użytkownika w3c:

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

W świetle tego wszystkiego uważam, że jest to kwestia safari (webkit). Czego nie rozumiem, dlaczego nie dotyczy innych przeglądarek webkit? Czy istnieje znane obejście?

questionAnswers(1)

yourAnswerToTheQuestion