diff --git a/pom.xml b/pom.xml
index e16ff0c28aa5771411fa8376987593d6b355e801..a420d28abf2d1ba24a22249d3275a0f0dbd68e2a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -57,8 +57,8 @@
3.2.10.RELEASE
3.2.1.RELEASE
1.0.5.RELEASE
- 1.0.3.RELEASE
- 1.0.0.M3
+ 1.1.0.RELEASE
+ 1.0.0.RELEASE
5.1.31
3.4
@@ -68,7 +68,7 @@
2.1
- 9.1.2.v20140210
+ 9.2.9.v20150224
false
@@ -77,6 +77,10 @@
+ central
+ http://repo.maven.apache.org/maven2
+
+
+
+
-
+
@@ -326,11 +326,6 @@
0.0.7
-
- org.apache.httpcomponents
- httpclient
- 4.2.5
-
net.sf.opencsv
@@ -472,46 +467,6 @@
${org.springframework.social-version}
-
- com.google.oauth-client
- google-oauth-client-servlet
- 1.17.0-rc
-
-
- servlet-api
- javax.servlet
-
-
-
-
-
- com.googlecode.googleplus
- google-plus-java-api
-
-
- org.codehaus.jackson
- jackson-core-asl
-
-
- org.codehaus.jackson
- jackson-mapper-asl
-
-
- 0.0.1-SNAPSHOT
-
-
-
- com.google.api.client
- google-api-client
-
-
- org.codehaus.jackson
- jackson-core-asl
-
-
- 1.3.1-alpha
-
-
xml-apis
xml-apis
@@ -538,6 +493,11 @@
prettytime
3.2.5.Final
+
+ org.apache.httpcomponents
+ httpclient
+ 4.3.6
+
diff --git a/src/main/java/org/genesys2/server/service/SearchService.java b/src/main/java/org/genesys2/server/service/SearchService.java
index 66af2c7544d9c2af7609b3988533639ab67edd52..123904e813668a99c51ef445f5bca4cc4a523d82 100644
--- a/src/main/java/org/genesys2/server/service/SearchService.java
+++ b/src/main/java/org/genesys2/server/service/SearchService.java
@@ -16,8 +16,6 @@
package org.genesys2.server.service;
-import java.util.List;
-
public interface SearchService {
// List autocomplete(String searchQuery, Class clazz);
diff --git a/src/main/java/org/genesys2/server/servlet/controller/GoogleSocialController.java b/src/main/java/org/genesys2/server/servlet/controller/GoogleSocialController.java
index be254bb2aae19a2009642b7cc5865cdb62738864..3d529b85f6ac67b1e7f826f1dcad078111808ddf 100644
--- a/src/main/java/org/genesys2/server/servlet/controller/GoogleSocialController.java
+++ b/src/main/java/org/genesys2/server/servlet/controller/GoogleSocialController.java
@@ -35,7 +35,7 @@ import org.springframework.security.web.authentication.SavedRequestAwareAuthenti
import org.springframework.security.web.authentication.SimpleUrlAuthenticationFailureHandler;
import org.springframework.social.google.api.Google;
import org.springframework.social.google.api.impl.GoogleTemplate;
-import org.springframework.social.google.api.userinfo.GoogleUserInfo;
+import org.springframework.social.google.api.plus.Person;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -74,11 +74,11 @@ public class GoogleSocialController extends BaseController {
}
final Google google = new GoogleTemplate(accessToken);
- final GoogleUserInfo userInfo = google.userOperations().getUserInfo();
+ final Person userInfo = google.plusOperations().getGoogleProfile();
- if (!userService.exists(userInfo.getEmail())) {
+ if (!userService.exists(userInfo.getAccountEmail())) {
final String pwd = RandomStringUtils.randomAlphanumeric(20);
- final User user = userService.createAccount(userInfo.getEmail(), pwd, userInfo.getName());
+ final User user = userService.createAccount(userInfo.getAccountEmail(), pwd, userInfo.getDisplayName());
userService.userEmailValidated(user.getUuid());
}
diff --git a/src/main/java/org/genesys2/server/servlet/util/GoogleOAuthUtil.java b/src/main/java/org/genesys2/server/servlet/util/GoogleOAuthUtil.java
index 63b1305447fdfff0c0d609323002ebf3fdf330d5..3adab30a3da031edb0aa67a111d894522e91f3cc 100644
--- a/src/main/java/org/genesys2/server/servlet/util/GoogleOAuthUtil.java
+++ b/src/main/java/org/genesys2/server/servlet/util/GoogleOAuthUtil.java
@@ -29,11 +29,11 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
-import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.utils.URLEncodedUtils;
-import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.message.BasicNameValuePair;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -43,7 +43,7 @@ import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
-import org.springframework.social.google.api.userinfo.GoogleUserInfo;
+import org.springframework.social.google.api.plus.Person;
import org.springframework.stereotype.Component;
import com.fasterxml.jackson.databind.JsonNode;
@@ -54,8 +54,8 @@ public class GoogleOAuthUtil {
private static final Log LOG = LogFactory.getLog(GoogleOAuthUtil.class);
public static final String LOCAL_GOOGLEAUTH_PATH = "/google/auth";
- private ObjectMapper mapper=new ObjectMapper();
-
+ private ObjectMapper mapper = new ObjectMapper();
+
@Value("${base.url}")
private String baseUrl;
@@ -70,30 +70,35 @@ public class GoogleOAuthUtil {
private UserDetailsService userDetailsService;
public String exchangeForAccessToken(HttpServletRequest request) throws IOException {
- final HttpClient httpclient = new DefaultHttpClient();
- final HttpPost httppost = new HttpPost("https://accounts.google.com/o/oauth2/token");
+ final CloseableHttpClient httpclient = HttpClientBuilder.create().build();
+
+ try {
+ final HttpPost httppost = new HttpPost("https://accounts.google.com/o/oauth2/token");
- final List params = new ArrayList<>();
- params.add(new BasicNameValuePair("code", request.getParameter("code")));
- params.add(new BasicNameValuePair("client_id", googleApiClientId));
- params.add(new BasicNameValuePair("client_secret", secret));
- params.add(new BasicNameValuePair("redirect_uri", baseUrl + LOCAL_GOOGLEAUTH_PATH));
- params.add(new BasicNameValuePair("grant_type", "authorization_code"));
- params.add(new BasicNameValuePair("scope", ""));
+ final List params = new ArrayList<>();
+ params.add(new BasicNameValuePair("code", request.getParameter("code")));
+ params.add(new BasicNameValuePair("client_id", googleApiClientId));
+ params.add(new BasicNameValuePair("client_secret", secret));
+ params.add(new BasicNameValuePair("redirect_uri", baseUrl + LOCAL_GOOGLEAUTH_PATH));
+ params.add(new BasicNameValuePair("grant_type", "authorization_code"));
+ params.add(new BasicNameValuePair("scope", ""));
- httppost.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
+ httppost.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
- final HttpResponse response = httpclient.execute(httppost);
+ final HttpResponse response = httpclient.execute(httppost);
- final BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8"));
- final StringBuilder builder = new StringBuilder();
- for (String line = null; (line = reader.readLine()) != null;) {
- builder.append(line).append("\n");
- }
+ final BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8"));
+ final StringBuilder builder = new StringBuilder();
+ for (String line = null; (line = reader.readLine()) != null;) {
+ builder.append(line).append("\n");
+ }
- JsonNode json = mapper.readTree(builder.toString());
+ JsonNode json = mapper.readTree(builder.toString());
- return json.has("access_token") ? json.get("access_token").textValue() : null;
+ return json.has("access_token") ? json.get("access_token").textValue() : null;
+ } finally {
+ httpclient.close();
+ }
}
public String getAuthenticationUrl() {
@@ -113,12 +118,12 @@ public class GoogleOAuthUtil {
return "https://accounts.google.com/o/oauth2/auth?" + query;
}
- public Authentication googleAuthentication(GoogleUserInfo userInfo) {
+ public Authentication googleAuthentication(Person userInfo) {
try {
- final UserDetails userDetails = userDetailsService.loadUserByUsername(userInfo.getEmail());
+ final UserDetails userDetails = userDetailsService.loadUserByUsername(userInfo.getAccountEmail());
if (!(userDetails.isEnabled() && userDetails.isAccountNonExpired() && userDetails.isAccountNonLocked() && userDetails.isCredentialsNonExpired())) {
- LOG.warn("Google login canceled: Account currently not available: " + userInfo.getEmail());
+ LOG.warn("Google login canceled: Account currently not available: " + userInfo.getAccountEmail());
return null;
}
@@ -127,7 +132,7 @@ public class GoogleOAuthUtil {
return authentication;
} catch (final UsernameNotFoundException e) {
- LOG.warn("Authentication with Google+ failed: No such user " + userInfo.getEmail());
+ LOG.warn("Authentication with Google+ failed: No such user " + userInfo.getAccountEmail());
return null;
}
}
diff --git a/src/test/java/org/genesys2/server/oauth/OAuthTokenSerializationTest.java b/src/test/java/org/genesys2/server/oauth/OAuthTokenSerializationTest.java
index 1638c601f3181a3f76e537292e0215c49fa622d4..6dae789a648087effda5b08c8d7ceea95faabce6 100644
--- a/src/test/java/org/genesys2/server/oauth/OAuthTokenSerializationTest.java
+++ b/src/test/java/org/genesys2/server/oauth/OAuthTokenSerializationTest.java
@@ -19,19 +19,16 @@ package org.genesys2.server.oauth;
import static org.junit.Assert.*;
import java.io.IOException;
-import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
-import org.apache.commons.collections.SetUtils;
import org.junit.Test;
import org.springframework.security.oauth2.common.DefaultExpiringOAuth2RefreshToken;
import org.springframework.security.oauth2.common.DefaultOAuth2AccessToken;
import org.springframework.security.oauth2.common.DefaultOAuth2RefreshToken;
-import org.springframework.security.oauth2.common.OAuth2AccessToken;
import org.springframework.security.oauth2.common.OAuth2RefreshToken;
import com.fasterxml.jackson.core.JsonProcessingException;