Обмен атрибутов OpenId не работает для Yahoo? - PullRequest
2 голосов
/ 30 августа 2011

Я использую Spring Security 3.0.5 для предоставления поддержки openid моему веб-сайту.Я написал следующий код в моем Spring-Security.xml

<security:attribute-exchange>
                <security:openid-attribute name="axContactEmail" type="http://axschema.org/contact/email" required="true"/>
                <security:openid-attribute name="oiContactEmail" type="http://schema.openid.net/contact/email" required="true"/>
                <security:openid-attribute name="axNamePersonFullname" type="http://axschema.org/namePerson" required="true"/>
                <security:openid-attribute name="axNamePersonFriendlyName" type="http://axschema.org/namePerson/friendly" required="true"/>
                <security:openid-attribute name="axNamePersonFirstName" type="http://axschema.org/namePerson/first" required="true"/>
                <security:openid-attribute name="axNamePersonLastName" type="http://axschema.org/namePerson/last" required="true"/>
            </security:attribute-exchange>

, чем я получаю доступ к атрибутам, используя OpenIDAuthenticationToken ... Для целей отладки я напечатал значение на консоли ... Я напечаталпараметры ... я получаю следующий вывод при попытке для Yahoo login ...

Email Address  : null
Full name  : null null
Prefered login  : null.null
Identifier here  : https://me.yahoo.com/a/L73gX9Yjkt2SKmqcgkzrbF7gGjRP **(correct!!! I have checked it)**

тот же код отлично работает для Gmail, и я получаю все атрибуты, которые я спросил ...

Заранее спасибо,

Ответы [ 2 ]

3 голосов
/ 05 сентября 2013

Этот вопрос старый, но надеюсь помочь другим.

Мы должны использовать имя атрибута электронной почты вместо axContactEmail или oiContactEmail

Моя конфигурация работает как с Google, так и с Yahoo!:

<security:attribute-exchange>
<security:openid-attribute name="email" type="http://schema.openid.net/contact/email" required="true"/>
<security:openid-attribute name="forename" type="http://schema.openid.net/namePerson/first" required="true"/>
<security:openid-attribute name="surname" type="http://schema.openid.net/namePerson/last" required="true"/>
<security:openid-attribute name="name" type="http://schema.openid.net/namePerson/friendly" required="true"/>
<!--Yahoo-->
<security:openid-attribute name="fullname" type="http://axschema.org/namePerson" required="true"/>
<security:openid-attribute name="email" type="http://axschema.org/contact/email" required="true"/>

Подробнее

3 голосов
/ 30 августа 2011

Возможный дубликат этого ТАК вопроса .Атрибуты AX не гарантированно поддерживаются каким-либо провайдером OpenID, и определенно сильно различаются от провайдера OpenID к провайдеру.С этими конкретными примерами Yahoo определенно возвращает очень мало информации в ответ на запросы AX, а Google возвращает немного больше.(В то время, когда я проводил исследование для своей книги около года назад, MyOpenID имел наиболее полную поддержку AX основных поставщиков OpenID).обмен атрибутами и другая архитектурная информация об OpenID, если вы планируете какую-то серьезную инициативу по внедрению.

...