@RequestMapping(value = "/user/register.html", method = RequestMethod.GET) public String registerOrLoginSocialUser(WebRequest request) { Connection<?> connection = ProviderSignInUtils.getConnection(request); if (connection != null) { String providerId = connection.getKey().getProviderId(); String providerUserId = connection.getKey().getProviderUserId(); Usuario usuario = usuarioService.buscarPorProviderYuserId(providerId, providerUserId); if (usuario == null) { UserProfile profile = connection.fetchUserProfile(); usuario = new Usuario(); usuario.setNombre(profile.getFirstName()); usuario.setApellidos(profile.getLastName()); usuario.setCorreo(profile.getEmail()); usuario.setFoto(connection.getImageUrl()); usuario.setClave(null); usuario.setProviderid(providerId); usuario.setProvideruserid(providerUserId); usuario.setRol(new Rol(1)); usuarioService.save(usuario); } SecurityUtil.logInUserSocial(usuario); } return "redirect:/index.html"; }
@RequestMapping(value = "/register.json", method = RequestMethod.POST) public @ResponseBody Map<String, Object> register(@RequestBody Usuario usuario) { Map<String, Object> map = new HashMap(); if (usuarioService.buscarUsuarioPorCorreo(usuario.getCorreo()) != null) { map.put("success", false); map.put("error", "El correo ya esta registrado"); } else { try { UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(usuario.getCorreo(), usuario.getClave()); usuario.setRol(new Rol(1)); usuario.setClave(EncryptUtil.toSHA1(usuario.getClave())); usuarioService.save(usuario); Authentication auth = authenticationManager.authenticate(token); SecurityContextHolder.getContext().setAuthentication(auth); map.put("success", true); } catch (Exception e) { e.printStackTrace(); map.put("success", false); map.put("error", "Error al registrar usuario"); } } return map; }