Я пытаюсь разработать проект Spring mvc с открытым идентификатором и входом в Google. Я использую конфигурацию java. И конфигурация XML являетсяopen id войдите в систему с google и spring mvc
<openid-login user-service-ref="openIdUserService" >
<attribute-exchange >
<openid-attribute name="email" type="http://schema.openid.net/contact/email" required="true" />
<openid-attribute name="firstName" type="http://axschema.org/namePerson/first" required="true" />
<openid-attribute name="lastName" type="http://axschema.org/namePerson/last" required="true" />
</attribute-exchange>
, но не мог понять, что соответствующий код конфигурации Java.
Любое предложение и пример кода для этого.
Я также использую весеннюю безопасность.
Вот провайдер:
public class OpenIdUserDetailsService implements UserDetailsService, AuthenticationUserDetailsService { @Autowired private CustomerRepository userRepository; private static final List DEFAULT_AUTHORITIES = AuthorityUtils.createAuthorityList("ROLE_USER"); @Override public UserDetails loadUserByUsername(String id) throws UsernameNotFoundException { Customer user = userRepository.findByOpenIdIdentifier(id); if (user == null) { throw new UsernameNotFoundException(id); } OpenIdUser openIdUser = new OpenIdUser(user.getOpenIdIdentifier(), DEFAULT_AUTHORITIES); openIdUser.setName(user.getFirstname()); return openIdUser; } @Override public UserDetails loadUserDetails(OpenIDAuthenticationToken token) { String id = token.getIdentityUrl(); Customer user = userRepository.findByOpenIdIdentifier(id); if (user != null) { OpenIdUser openIdUser = new OpenIdUser(user.getOpenIdIdentifier(), DEFAULT_AUTHORITIES); openIdUser.setName(user.getFirstname()); return openIdUser; } String firstName = null; String lastName = null; String fullName = null; List attributes = token.getAttributes(); for (OpenIDAttribute attribute : attributes) { String name = attribute.getName(); if (name.equals("firstname")) { firstName = attribute.getValues().get(0); } else if (name.equals("lastname")) { lastName = attribute.getValues().get(0); } else if (name.equals("fullname")) { fullName = attribute.getValues().get(0); } } if (fullName == null) { StringBuilder fullNameBldr = new StringBuilder(); if (firstName != null) { fullNameBldr.append(firstName); } if (lastName != null) { fullNameBldr.append(" ").append(lastName); } fullName = fullNameBldr.toString(); } OpenIdUser openIdUser = new OpenIdUser(id, DEFAULT_AUTHORITIES); openIdUser.setName(fullName); openIdUser.setNewUser(true); Customer u = new Customer(); u.setOpenIdIdentifier(openIdUser.getUsername()); u.setFirstname(openIdUser.getName()); userRepository.save(u); return openIdUser; } }
Спасибо за всю помощь.