Я использую библиотеку openid4java для реализации функции 'login with google' в приложении spring-mvc.
Он отлично работает на моем локальном сервере Tomcat, но на удаленном сервере он внезапно перестал работать. До этого там тоже все работало нормально.
После некоторого входа в catalina.out я обнаружил, что проверка ответа не проходит после того, как Google перенаправляет на возвращаемый URL
VerificationResult verification = openIdService.getConsumerManager().verify(
receivingURL.toString(),
response, discovered);
Identifier verified = verification.getVerifiedId(); //Null
Значение проверено на удаленном сервере пусто. На локальном сервере его URI
Мне известно, что при обработке ответа ConsumerManager должен быть таким же
экземпляр, используемый для размещения запроса аутентификации.
Остальная часть кода реализована следующим образом
Существует OpenIdController, в котором OpenIdService автоматически подключается.
OpenIdServiceImpl реализует OpenIdService и имеет метод getConsumerManager, который возвращает экземпляр consumerManager.
В конструкции OpenIdServiceImpl создается экземпляр ConsumerManager.
Действия, которые создают форму для отправки и обрабатывают ответ, записаны в
Откройте OpenIdController и получите доступ к экземпляру consumerManager, используя метод getConsumerManager.
Редактировать:
Я попытался записать информацию Discovery перед отправкой формы и при обратном вызове здесь вывод
Debugging OpenId: Discovered (before) OpenID2
OP-endpoint:https://www.google.com/accounts/o8/ud
ClaimedID:null
Delegate:null
Debugging OpenId: Discovered (after) OpenID2
OP-endpoint:https://www.google.com/accounts/o8/ud
ClaimedID:null
Delegate:nul
Я что-то здесь не так делаю? Но это работает на локальном сервере!
Или что-то связанное с настройкой tomcat на удаленном сервере?
Любая помощь приветствуется. Я могу опубликовать код, если требуется.
Спасибо.