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/10 08:48:58 UTC

openmeetings git commit: [OPENMEETINGS-1717] get URL seems to be fixed

Repository: openmeetings
Updated Branches:
  refs/heads/master 0684a2f90 -> 91f600601


[OPENMEETINGS-1717] get URL seems to be fixed


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

Branch: refs/heads/master
Commit: 91f600601f64bcf1006cb96ae876404b3f041f2a
Parents: 0684a2f
Author: Maxim Solodovnik <so...@gmail.com>
Authored: Tue Oct 10 15:48:50 2017 +0700
Committer: Maxim Solodovnik <so...@gmail.com>
Committed: Tue Oct 10 15:48:50 2017 +0700

----------------------------------------------------------------------
 .../openmeetings/web/admin/oauth/OAuthForm.java |  5 ++--
 .../openmeetings/web/app/Application.java       |  2 +-
 .../web/pages/auth/ForgetPasswordDialog.java    | 16 +++++++------
 .../web/pages/auth/SignInDialog.java            |  2 +-
 .../openmeetings/web/pages/auth/SignInPage.java | 25 +++++++-------------
 5 files changed, 23 insertions(+), 27 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/openmeetings/blob/91f60060/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/oauth/OAuthForm.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/oauth/OAuthForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/oauth/OAuthForm.java
index f3cfdb9..73659b1 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/oauth/OAuthForm.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/oauth/OAuthForm.java
@@ -18,6 +18,8 @@
  */
 package org.apache.openmeetings.web.admin.oauth;
 
+import static org.apache.openmeetings.web.pages.auth.SignInPage.getRedirectUri;
+
 import java.util.Arrays;
 
 import org.apache.openmeetings.db.dao.server.OAuth2Dao;
@@ -26,7 +28,6 @@ import org.apache.openmeetings.db.entity.server.OAuthServer.RequestMethod;
 import org.apache.openmeetings.web.admin.AdminBaseForm;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.app.WebSession;
-import org.apache.openmeetings.web.pages.auth.SignInPage;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.form.AjaxFormValidatingBehavior;
 import org.apache.wicket.markup.html.WebMarkupContainer;
@@ -74,7 +75,7 @@ public class OAuthForm extends AdminBaseForm<OAuthServer> {
 	@Override
 	protected void onModelChanged() {
 		super.onModelChanged();
-		redirectUriText.setModelObject(SignInPage.getRedirectUri(getModelObject(), this));
+		redirectUriText.setModelObject(getRedirectUri(getModelObject()));
 	}
 
 	@Override

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/91f60060/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 26dae7c..c97a507 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
@@ -825,7 +825,7 @@ public class Application extends AuthenticatedWebApplication implements IApplica
 		if (!new UrlValidator(new String[] {"http", "https"}).isValid(baseUrl) && !Strings.isEmpty(_baseUrl)) {
 			baseUrl = _baseUrl;
 		}
-		return rc.getUrlRenderer().renderFullUrl(Url.parse(baseUrl + rc.urlFor(clazz, pp)));
+		return rc.getUrlRenderer().renderFullUrl(Url.parse(baseUrl + rc.mapUrlFor(clazz, pp)));
 	}
 
 	@Override

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/91f60060/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java
index 08c0d33..a6d9165 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java
@@ -20,6 +20,7 @@ package org.apache.openmeetings.web.pages.auth;
 
 import static org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey;
 import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.app.Application.urlForPage;
 
 import java.util.Arrays;
 import java.util.Date;
@@ -216,8 +217,7 @@ public class ForgetPasswordDialog extends AbstractFormDialog<String> {
 	protected void onSubmit(AjaxRequestTarget target) {
 		String nm = name.getModelObject();
 		Type type = rg.getModelObject();
-		resetUser(type == Type.email ? nm : "", type == Type.login ? nm : ""
-			, getBean(ConfigurationDao.class).getBaseUrl() + getRequestCycle().urlFor(ResetPage.class, new PageParameters()).toString().substring(2));
+		resetUser(type == Type.email ? nm : "", type == Type.login ? nm : "");
 	}
 
 	/**
@@ -229,7 +229,7 @@ public class ForgetPasswordDialog extends AbstractFormDialog<String> {
 	 * @param appLink
 	 * @return <code>true</code> in case reset was successful, <code>false</code> otherwise
 	 */
-	private boolean resetUser(String email, String username, String appLink) {
+	private boolean resetUser(String email, String username) {
 		try {
 			UserDao userDao = getBean(UserDao.class);
 			log.debug("resetUser " + email);
@@ -238,13 +238,13 @@ public class ForgetPasswordDialog extends AbstractFormDialog<String> {
 			if (!Strings.isEmpty(email)) {
 				User us = userDao.getByEmail(email);
 				if (us != null) {
-					sendHashByUser(us, appLink, userDao);
+					sendHashByUser(us, userDao);
 					return true;
 				}
 			} else if (!Strings.isEmpty(username)) {
 				User us = userDao.getByLogin(username, User.Type.user, null);
 				if (us != null) {
-					sendHashByUser(us, appLink, userDao);
+					sendHashByUser(us, userDao);
 					return true;
 				}
 			}
@@ -254,12 +254,14 @@ public class ForgetPasswordDialog extends AbstractFormDialog<String> {
 		return false;
 	}
 
-	private void sendHashByUser(User us, String appLink, UserDao userDao) {
+	private void sendHashByUser(User us, UserDao userDao) {
 		log.debug("User: " + us.getLogin());
 		us.setResethash(UUID.randomUUID().toString());
 		us.setResetDate(new Date());
 		userDao.update(us, null);
-		String resetLink = appLink + "?hash=" + us.getResethash();
+		String resetLink = urlForPage(ResetPage.class
+				, new PageParameters().add("hash", us.getResethash())
+				, getBean(ConfigurationDao.class).getBaseUrl());
 
 		String email = us.getAddress().getEmail();
 

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/91f60060/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java
index 6b56edd..24892ca 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java
@@ -279,7 +279,7 @@ public class SignInDialog extends NonClosableDialog<String> {
 
 							@Override
 							public void onSubmit() {
-								showAuth(s, SignInDialog.this);
+								showAuth(s);
 							}
 						};
 						Component icon = new Image("icon", Model.of(""))

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/91f60060/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 fdde19b..5f6754c 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
@@ -23,13 +23,12 @@ import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_IGNORE_B
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_REGISTER_FRONTEND;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey;
 import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.app.Application.urlForPage;
 
 import java.io.DataOutputStream;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.net.HttpURLConnection;
-import java.net.URI;
-import java.net.URISyntaxException;
 import java.net.URL;
 import java.net.URLConnection;
 import java.net.URLEncoder;
@@ -56,7 +55,6 @@ import org.apache.openmeetings.util.OmException;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.app.WebSession;
 import org.apache.openmeetings.web.pages.BaseInitedPage;
-import org.apache.wicket.Component;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.request.IRequestParameters;
 import org.apache.wicket.request.cycle.RequestCycle;
@@ -102,7 +100,7 @@ public class SignInPage extends BaseInitedPage {
 					Map<String, String> authParams = getAuthParams(authInfo.accessToken, code, server);
 					loginViaOAuth2(authParams, serverId);
 				} else { // redirect to get code
-					showAuth(server, this);
+					showAuth(server);
 				}
 			} catch (IOException|NoSuchAlgorithmException e) {
 				log.error("OAuth2 login error", e);
@@ -149,8 +147,8 @@ public class SignInPage extends BaseInitedPage {
 	}
 
 	// ============= OAuth2 methods =============
-	public static void showAuth(final OAuthServer s, Component c) {
-		String authUrl = prepareUrlParams(s.getRequestKeyUrl(), s.getClientId(), getRedirectUri(s, c), null, null, null);
+	public static void showAuth(final OAuthServer s) {
+		String authUrl = prepareUrlParams(s.getRequestKeyUrl(), s.getClientId(), getRedirectUri(s), null, null, null);
 		log.debug("redirectUrl={}", authUrl);
 		throw new RedirectToUrlException(authUrl);
 	}
@@ -179,16 +177,11 @@ public class SignInPage extends BaseInitedPage {
 		return result;
 	}
 
-	public static String getRedirectUri(OAuthServer server, Component component) {
+	public static String getRedirectUri(OAuthServer server) {
 		String result = "";
 		if (server.getId() != null) {
-			try {
-				String base = getBean(ConfigurationDao.class).getBaseUrl();
-				URI uri = new URI(base + component.urlFor(SignInPage.class, new PageParameters().add("oauthid", server.getId())));
-				result = uri.normalize().toString();
-			} catch (URISyntaxException e) {
-				log.error("Unexpected error while getting redirect URL", e);
-			}
+			String base = getBean(ConfigurationDao.class).getBaseUrl();
+			result = urlForPage(SignInPage.class, new PageParameters().add("oauthid", server.getId()), base);
 		}
 		return result;
 	}
@@ -232,7 +225,7 @@ public class SignInPage extends BaseInitedPage {
 		String requestTokenBaseUrl = server.getRequestTokenUrl();
 		// build url params to request auth token
 		String requestTokenParams = server.getRequestTokenAttributes();
-		requestTokenParams = prepareUrlParams(requestTokenParams, server.getClientId(), getRedirectUri(server, this)
+		requestTokenParams = prepareUrlParams(requestTokenParams, server.getClientId(), getRedirectUri(server)
 				, server.getClientSecret(), null, code);
 		// request auth token
 		HttpURLConnection urlConnection = (HttpURLConnection) new URL(requestTokenBaseUrl).openConnection();
@@ -279,7 +272,7 @@ public class SignInPage extends BaseInitedPage {
 		String lastname = server.getLastnameParamName();
 		// prepare url
 		String requestInfoUrl = server.getRequestInfoUrl();
-		requestInfoUrl = prepareUrlParams(requestInfoUrl, server.getClientId(), getRedirectUri(server, this)
+		requestInfoUrl = prepareUrlParams(requestInfoUrl, server.getClientId(), getRedirectUri(server)
 				, server.getClientSecret(), token, code);
 		// send request
 		URLConnection connection = new URL(requestInfoUrl).openConnection();