You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2017/10/23 06:02:04 UTC

openmeetings git commit: [OPENMEETINGS-1727] basic support for VK is added (not tested)

Repository: openmeetings
Updated Branches:
  refs/heads/master 66c2c5943 -> 49e95402b


[OPENMEETINGS-1727] basic support for VK is added (not tested)


Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo
Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/49e95402
Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/49e95402
Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/49e95402

Branch: refs/heads/master
Commit: 49e95402b5fd0279a80086b436166662a267ab43
Parents: 66c2c59
Author: Maxim Solodovnik <so...@gmail.com>
Authored: Mon Oct 23 13:01:56 2017 +0700
Committer: Maxim Solodovnik <so...@gmail.com>
Committed: Mon Oct 23 13:01:56 2017 +0700

----------------------------------------------------------------------
 .../installation/ImportInitvalues.java          | 84 ++++++++++++--------
 .../openmeetings/web/app/Application.java       |  1 +
 .../openmeetings/web/pages/auth/SignInPage.java |  8 +-
 3 files changed, 57 insertions(+), 36 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/openmeetings/blob/49e95402/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
----------------------------------------------------------------------
diff --git a/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java b/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
index 1617fbf..5254e36 100644
--- a/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
+++ b/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
@@ -428,27 +428,27 @@ public class ImportInitvalues {
 
 	public void loadInitialOAuthServers() {
 		// Yandex
-		OAuthServer yandexServer = new OAuthServer();
-		yandexServer.setName("Yandex");
-		yandexServer.setIconUrl("http://yandex.st/morda-logo/i/favicon.ico");
-		yandexServer.setClientId(CLIENT_PLACEHOLDER);
-		yandexServer.setClientSecret(SECRET_PLACEHOLDER);
-		yandexServer.setEnabled(false);
-		yandexServer.setRequestInfoUrl("https://login.yandex.ru/info?format=json&oauth_token={$access_token}");
-		yandexServer.setRequestTokenUrl("https://oauth.yandex.ru/token");
-		yandexServer.setRequestKeyUrl("https://oauth.yandex.ru/authorize?response_type=code&client_id={$client_id}");
-		yandexServer.setRequestTokenAttributes("grant_type=authorization_code&code={$code}&client_id={$client_id}&client_secret={$client_secret}");
-		yandexServer.setRequestTokenMethod(RequestMethod.POST);
-		yandexServer.setLoginParamName("login");
-		yandexServer.setEmailParamName("default_email");
-		yandexServer.setFirstnameParamName("first_name");
-		yandexServer.setLastnameParamName("last_name");
-		oauthDao.update(yandexServer, null);
+		OAuthServer yaServer = new OAuthServer();
+		yaServer.setName("Yandex");
+		yaServer.setIconUrl("http://yandex.st/morda-logo/i/favicon.ico");
+		yaServer.setClientId(CLIENT_PLACEHOLDER);
+		yaServer.setClientSecret(SECRET_PLACEHOLDER);
+		yaServer.setEnabled(false);
+		yaServer.setRequestInfoUrl("https://login.yandex.ru/info?format=json&oauth_token={$access_token}");
+		yaServer.setRequestTokenUrl("https://oauth.yandex.ru/token");
+		yaServer.setRequestKeyUrl("https://oauth.yandex.ru/authorize?response_type=code&client_id={$client_id}");
+		yaServer.setRequestTokenAttributes("grant_type=authorization_code&code={$code}&client_id={$client_id}&client_secret={$client_secret}");
+		yaServer.setRequestTokenMethod(RequestMethod.POST);
+		yaServer.setLoginParamName("login");
+		yaServer.setEmailParamName("default_email");
+		yaServer.setFirstnameParamName("first_name");
+		yaServer.setLastnameParamName("last_name");
+		oauthDao.update(yaServer, null);
 
 		// Google
 		OAuthServer googleServer = new OAuthServer();
 		googleServer.setName("Google");
-		googleServer.setIconUrl("https://www.google.ru/images/google_favicon_128.png");
+		googleServer.setIconUrl("https://www.google.com/images/google_favicon_128.png");
 		googleServer.setEnabled(false);
 		googleServer.setClientId(CLIENT_PLACEHOLDER);
 		googleServer.setClientSecret(SECRET_PLACEHOLDER);
@@ -465,22 +465,40 @@ public class ImportInitvalues {
 		oauthDao.update(googleServer, null);
 
 		// Facebook
-		OAuthServer facebookServer = new OAuthServer();
-		facebookServer.setName("Facebook");
-		facebookServer.setIconUrl("https://www.facebook.com/images/fb_icon_325x325.png");
-		facebookServer.setEnabled(false);
-		facebookServer.setClientId(CLIENT_PLACEHOLDER);
-		facebookServer.setClientSecret(SECRET_PLACEHOLDER);
-		facebookServer.setRequestKeyUrl("https://www.facebook.com/v2.10/dialog/oauth?client_id={$client_id}&redirect_uri={$redirect_uri}&scope=email");
-		facebookServer.setRequestTokenUrl("https://graph.facebook.com/v2.10/oauth/access_token");
-		facebookServer.setRequestTokenMethod(RequestMethod.POST);
-		facebookServer.setRequestTokenAttributes("client_id={$client_id}&redirect_uri={$redirect_uri}&client_secret={$client_secret}&code={$code}");
-		facebookServer.setRequestInfoUrl("https://graph.facebook.com/me?access_token={$access_token}&fields=id,first_name,last_name,email");
-		facebookServer.setLoginParamName("id");
-		facebookServer.setEmailParamName(EMAIL_PARAM);
-		facebookServer.setFirstnameParamName("first_name");
-		facebookServer.setLastnameParamName("last_name");
-		oauthDao.update(facebookServer, null);
+		OAuthServer fbServer = new OAuthServer();
+		fbServer.setName("Facebook");
+		fbServer.setIconUrl("https://www.facebook.com/images/fb_icon_325x325.png");
+		fbServer.setEnabled(false);
+		fbServer.setClientId(CLIENT_PLACEHOLDER);
+		fbServer.setClientSecret(SECRET_PLACEHOLDER);
+		fbServer.setRequestKeyUrl("https://www.facebook.com/v2.10/dialog/oauth?client_id={$client_id}&redirect_uri={$redirect_uri}&scope=email");
+		fbServer.setRequestTokenUrl("https://graph.facebook.com/v2.10/oauth/access_token");
+		fbServer.setRequestTokenMethod(RequestMethod.POST);
+		fbServer.setRequestTokenAttributes("client_id={$client_id}&redirect_uri={$redirect_uri}&client_secret={$client_secret}&code={$code}");
+		fbServer.setRequestInfoUrl("https://graph.facebook.com/me?access_token={$access_token}&fields=id,first_name,last_name,email");
+		fbServer.setLoginParamName("id");
+		fbServer.setEmailParamName(EMAIL_PARAM);
+		fbServer.setFirstnameParamName("first_name");
+		fbServer.setLastnameParamName("last_name");
+		oauthDao.update(fbServer, null);
+
+		// VK
+		OAuthServer vkServer = new OAuthServer();
+		vkServer.setName("VK");
+		vkServer.setIconUrl("https://vk.com/images/svg_icons/ic_head_logo.svg");
+		vkServer.setEnabled(false);
+		vkServer.setClientId(CLIENT_PLACEHOLDER);
+		vkServer.setClientSecret(SECRET_PLACEHOLDER);
+		vkServer.setRequestKeyUrl("https://oauth.vk.com/authorize?client_id={$client_id}&scope=email&redirect_uri={$redirect_uri}&response_type=code&v=5.68");
+		vkServer.setRequestTokenUrl("https://oauth.vk.com/access_token");
+		vkServer.setRequestTokenMethod(RequestMethod.POST);
+		vkServer.setRequestTokenAttributes("client_id={$client_id}&client_secret={$client_secret}&code={$code}&redirect_uri={$redirect_uri}");
+		vkServer.setRequestInfoUrl("https://api.vk.com/method/users.get?user_ids=&access_token={$access_token}&fields=id,first_name,last_name,email&name_case=nom");
+		vkServer.setLoginParamName("id");
+		vkServer.setEmailParamName(EMAIL_PARAM);
+		vkServer.setFirstnameParamName("first_name");
+		vkServer.setLastnameParamName("last_name");
+		oauthDao.update(vkServer, null);
 	}
 
 	// ------------------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/49e95402/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
index 5d7a195..bd36f4f 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
@@ -284,6 +284,7 @@ public class Application extends AuthenticatedWebApplication implements IApplica
 		getRootRequestMapperAsCompound().add(new NoVersionMapper(NOTINIT_MAPPING, NotInitedPage.class));
 		getRootRequestMapperAsCompound().add(new NoVersionMapper(HASH_MAPPING, HashPage.class));
 		getRootRequestMapperAsCompound().add(new NoVersionMapper(SIGNIN_MAPPING, getSignInPageClass()));
+		getRootRequestMapperAsCompound().add(new NoVersionMapper("oauth/${oauthid}", getSignInPageClass()));
 		mountPage("install", InstallWizardPage.class);
 		mountPage("activate", ActivatePage.class);
 		mountPage("reset", ResetPage.class);

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/49e95402/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInPage.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInPage.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInPage.java
index 3ed5718..df0b412 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInPage.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInPage.java
@@ -268,7 +268,6 @@ public class SignInPage extends BaseInitedPage {
 
 	private static Map<String, String> getAuthParams(String token, String code, OAuthServer server) throws IOException {
 		// get attributes names
-		String login = server.getLoginParamName();
 		String email = server.getEmailParamName();
 		String firstname = server.getFirstnameParamName();
 		String lastname = server.getLastnameParamName();
@@ -283,8 +282,11 @@ public class SignInPage extends BaseInitedPage {
 		// parse json result
 		Map<String, String> result = new HashMap<>();
 		JSONObject json = new JSONObject(sourceResponse);
-		result.put("login", json.getString(login));
-		result.put("email", json.getString(email));
+		String login = json.getString(server.getLoginParamName());
+		result.put("login", login);
+		result.put("email", json.has(email)
+				? json.getString(email)
+				: String.format("%s@%s", login, new URL(server.getIconUrl()).getHost()));
 		if (json.has(firstname)) {
 			result.put("firstname", json.getString(firstname));
 		}