Как я вижу, этот вопрос сам по себе содержит ответ. Я просто вытаскиваю это и публикую как ответ для ясности другим разработчикам с той же проблемой. Мне потребовалось некоторое время, чтобы выяснить, что у вопроса есть ответ!
Чтобы получить доступ к электронной почте пользователя и amp; имя, вам нужно добавить ниже конфигурацию в XML-файл безопасности.
<security:attribute-exchange identifier-match="https://www.google.com/.*">
<security:openid-attribute name="email" type="http://schema.openid.net/contact/email" required="true" />
<security:openid-attribute name="firstName" type="http://axschema.org/namePerson/first" required="true" />
<security:openid-attribute name="lastName" type="http://axschema.org/namePerson/last" required="true" />
</security:attribute-exchange>
<security:attribute-exchange identifier-match=".*yahoo.com.*">
<security:openid-attribute name="email" type="http://axschema.org/contact/email" required="true"/>
<security:openid-attribute name="fullname" type="http://axschema.org/namePerson" required="true" />
</security:attribute-exchange>
После этого он будет доступен в классе AuthenticationUserDetailsService
, как показано ниже.
public UserDetails loadUserDetails(OpenIDAuthenticationToken token) {
String id = token.getIdentityUrl();
:
:
List attributes = token.getAttributes();
for (OpenIDAttribute attribute : attributes) {
if (attribute.getName().equals("email")) {
email = attribute.getValues().get(0);
}
if (attribute.getName().equals("firstName")) {
firstName = attribute.getValues().get(0);
}
if (attribute.getName().equals("lastName")) {
lastName = attribute.getValues().get(0);
}
if (attribute.getName().equals("fullname")) {
fullName = attribute.getValues().get(0);
}
}
:
:
// form and return user object
}
Учитывая, что мы используем больше конфигурации / бинов на основе Java, перевод этих настроек XML в конфигурацию на основе Java не должен быть проблемой.
Надеюсь, это поможет.
Проверьте, например:
if(typeof someNode.onclick == "function") {
// someNode has an event handler already set for the onclick event...
}
Между прочим, если вы используете библиотеку, вы должны так сказать - если да, это может быть проще / чище и будет отличаться в зависимости от того, какой библиотека, которую вы используете ...
<input type="button" id="foo" name="foo" value="bar" />
<script type="text/javascript">
alert(document.getElementById('foo').onclick); //undefined
</script>
Итак, вы хотите сделать что-то вроде этого:
<script type="text/javascript">
if (undefined == document.getElementById('foo').onclick)
{
// Add event handler
}
</script>