@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;
  }
  @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";
  }