This is an automated email from the ASF dual-hosted git repository.

solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git


The following commit(s) were added to refs/heads/master by this push:
     new 74ee5f2  [OPENMEETINGS-1952] correct allow.register are being checked
74ee5f2 is described below

commit 74ee5f22a4f24ec17aa8c9d8aeb233c57af27434
Author: Maxim Solodovnik <[email protected]>
AuthorDate: Tue Oct 9 13:24:17 2018 +0700

    [OPENMEETINGS-1952] correct allow.register are being checked
---
 .../openmeetings/core/remote/MobileService.java    | 12 ++++-----
 .../db/dao/basic/ConfigurationDao.java             | 30 ++++++++++++++++++++++
 .../openmeetings/db/dao/server/OAuth2Dao.java      |  6 +++++
 .../openmeetings/util/OpenmeetingsVariables.java   | 27 +++++++++++++++++++
 .../apache/openmeetings/web/app/UserManager.java   |  7 +++--
 .../web/pages/auth/RegisterDialog.java             |  1 -
 .../openmeetings/web/pages/auth/SignInPage.java    |  4 +--
 .../openmeetings/webservice/UserWebService.java    |  4 +++
 8 files changed, 80 insertions(+), 11 deletions(-)

diff --git 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java
 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java
index e9da8b8..bf0e011 100644
--- 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java
+++ 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java
@@ -21,10 +21,10 @@ package org.apache.openmeetings.core.remote;
 import static org.apache.openmeetings.db.util.LocaleHelper.getCountryName;
 import static org.apache.openmeetings.util.OmException.UNKNOWN;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_EMAIL_VERIFICATION;
-import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_REGISTER_FRONTEND;
-import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_REGISTER_OAUTH;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.PARAM_STATUS;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.getBaseUrl;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.isAllowRegisterFrontend;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.isAllowRegisterOauth;
 
 import java.io.Serializable;
 import java.util.ArrayList;
@@ -96,8 +96,8 @@ public class MobileService {
 
        public Map<String, Object> checkServer() {
                Map<String, Object> result = new HashMap<>();
-               result.put("allowSelfRegister",  
cfgDao.getBool(CONFIG_REGISTER_FRONTEND, false));
-               result.put("allowOauthRegister",  
cfgDao.getBool(CONFIG_REGISTER_OAUTH, false));
+               result.put("allowSelfRegister", isAllowRegisterFrontend());
+               result.put("allowOauthRegister", isAllowRegisterOauth());
                return result;
        }
 
@@ -116,7 +116,7 @@ public class MobileService {
        public Map<String, Object> loginGoogle(Map<String, String> umap) {
                Map<String, Object> result = getResult();
                try {
-                       if (cfgDao.getBool(CONFIG_REGISTER_OAUTH, false)) {
+                       if (isAllowRegisterOauth()) {
                                User u = userManager.loginOAuth(new 
OAuthUser(umap), 2); //TODO hardcoded
                                result = login(u, result);
                        }
@@ -129,7 +129,7 @@ public class MobileService {
        public Map<String, Object> registerUser(Map<String, String> umap) {
                Map<String, Object> result = getResult();
                try {
-                       if (cfgDao.getBool(CONFIG_REGISTER_FRONTEND, false)) {
+                       if (isAllowRegisterFrontend()) {
                                String login = umap.get("login");
                                String email = umap.get("email");
                                String lastname = umap.get("lastname");
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java
index e78c28f..1731287 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java
@@ -45,6 +45,9 @@ import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_MP4_AUDI
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_MP4_AUDIO_RATE;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_MP4_VIDEO_PRESET;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_PASS_MIN_LENGTH;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_REGISTER_FRONTEND;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_REGISTER_OAUTH;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_REGISTER_SOAP;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_REST_ALLOW_ORIGIN;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_SIP_ENABLED;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_SIP_EXTEN_CONTEXT;
@@ -56,6 +59,9 @@ import static 
org.apache.openmeetings.util.OpenmeetingsVariables.USER_LOGIN_MINI
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.USER_PASSWORD_MINIMUM_LENGTH;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getRoomSettings;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getWicketApplicationName;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.setAllowRegisterFrontend;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.setAllowRegisterOauth;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.setAllowRegisterSoap;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.setApplicationName;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.setAudioBitrate;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.setAudioRate;
@@ -373,6 +379,15 @@ public class ConfigurationDao implements 
IDataProviderDao<Configuration> {
                        case CONFIG_CHAT_SEND_ON_ENTER:
                                reloadChatSendOnEnter();
                                break;
+                       case CONFIG_REGISTER_FRONTEND:
+                               reloadAllowRegisterFront();
+                               break;
+                       case CONFIG_REGISTER_SOAP:
+                               reloadAllowRegisterSoap();
+                               break;
+                       case CONFIG_REGISTER_OAUTH:
+                               reloadAllowRegisterOauth();
+                               break;
                }
                return entity;
        }
@@ -476,6 +491,18 @@ public class ConfigurationDao implements 
IDataProviderDao<Configuration> {
                setChatSenndOnEnter(getBool(CONFIG_CHAT_SEND_ON_ENTER, false));
        }
 
+       private void reloadAllowRegisterFront() {
+               setAllowRegisterFrontend(getBool(CONFIG_REGISTER_FRONTEND, 
false));
+       }
+
+       private void reloadAllowRegisterSoap() {
+               setAllowRegisterSoap(getBool(CONFIG_REGISTER_SOAP, false));
+       }
+
+       private void reloadAllowRegisterOauth() {
+               setAllowRegisterOauth(getBool(CONFIG_REGISTER_OAUTH, false));
+       }
+
        public void reinit() {
                reloadMaxUpload();
                reloadCrypt();
@@ -497,6 +524,9 @@ public class ConfigurationDao implements 
IDataProviderDao<Configuration> {
                reloadFnameMinLength();
                reloadLnameMinLength();
                reloadChatSendOnEnter();
+               reloadAllowRegisterFront();
+               reloadAllowRegisterSoap();
+               reloadAllowRegisterOauth();
        }
 
        private JSONObject reloadRoomSettings() {
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/OAuth2Dao.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/OAuth2Dao.java
index 1d3633b..8ad578c 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/OAuth2Dao.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/OAuth2Dao.java
@@ -18,6 +18,9 @@
  */
 package org.apache.openmeetings.db.dao.server;
 
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.isAllowRegisterOauth;
+
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -39,6 +42,9 @@ public class OAuth2Dao implements 
IDataProviderDao<OAuthServer> {
        private EntityManager em;
 
        public List<OAuthServer> getActive() {
+               if (!isAllowRegisterOauth()) {
+                       return new ArrayList<>();
+               }
                TypedQuery<OAuthServer> query = 
em.createNamedQuery("getEnabledOAuthServers", OAuthServer.class);
                return query.getResultList();
        }
diff --git 
a/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java
 
b/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java
index 846ff51..d261193 100644
--- 
a/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java
+++ 
b/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java
@@ -141,6 +141,9 @@ public class OpenmeetingsVariables {
        private static int minFnameLength = USER_LOGIN_MINIMUM_LENGTH;
        private static int minLnameLength = USER_LOGIN_MINIMUM_LENGTH;
        private static boolean chatSendOnEnter = false;
+       private static boolean allowRegisterFrontend = false;
+       private static boolean allowRegisterSoap = false;
+       private static boolean allowRegisterOauth = false;
 
        private OpenmeetingsVariables() {}
 
@@ -339,4 +342,28 @@ public class OpenmeetingsVariables {
        public static void setChatSenndOnEnter(boolean sendOnEnter) {
                chatSendOnEnter = sendOnEnter;
        }
+
+       public static boolean isAllowRegisterFrontend() {
+               return allowRegisterFrontend;
+       }
+
+       public static void setAllowRegisterFrontend(boolean allow) {
+               allowRegisterFrontend = allow;
+       }
+
+       public static boolean isAllowRegisterSoap() {
+               return allowRegisterSoap;
+       }
+
+       public static void setAllowRegisterSoap(boolean allow) {
+               allowRegisterSoap = allow;
+       }
+
+       public static boolean isAllowRegisterOauth() {
+               return allowRegisterOauth;
+       }
+
+       public static void setAllowRegisterOauth(boolean allow) {
+               allowRegisterOauth = allow;
+       }
 }
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/UserManager.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/UserManager.java
index df76ee5..523509b 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/UserManager.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/UserManager.java
@@ -22,11 +22,11 @@ import static 
org.apache.openmeetings.db.dao.user.UserDao.getNewUserInstance;
 import static org.apache.openmeetings.db.util.TimezoneUtil.getTimeZone;
 import static org.apache.openmeetings.util.OmException.UNKNOWN;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_EMAIL_VERIFICATION;
-import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_REGISTER_SOAP;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.getBaseUrl;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getDefaultGroup;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getDefaultLang;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getMinLoginLength;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.isAllowRegisterFrontend;
 
 import java.io.IOException;
 import java.security.NoSuchAlgorithmException;
@@ -97,7 +97,7 @@ public class UserManager implements IUserManager {
                        String firstname, String email, String country, long 
languageId, String tzId) {
                try {
                        // Checks if FrontEndUsers can register
-                       if (cfgDao.getBool(CONFIG_REGISTER_SOAP, false)) {
+                       if (isAllowRegisterFrontend()) {
                                User u = getNewUserInstance(null);
                                u.setFirstname(firstname);
                                u.setLogin(login);
@@ -113,11 +113,14 @@ public class UserManager implements IUserManager {
                                Object user = registerUser(u, password, null);
 
                                if (user instanceof User && sendConfirmation()) 
{
+                                       log.debug("User created, confirmation 
should be sent");
                                        return -40L;
                                }
 
+                               log.debug("User creation result: {}", user);
                                return user;
                        } else {
+                               log.warn("Frontend registering is disabled");
                                return "error.reg.disabled";
                        }
                } catch (Exception e) {
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java
index fe12cd3..95d9e90 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java
@@ -198,7 +198,6 @@ public class RegisterDialog extends 
NonClosableDialog<String> {
                } catch (Exception e) {
                        log.error("[registerUser]", e);
                }
-
                confirmRegistration.open(target);
        }
 
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 47ce685..f5e5636 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
@@ -20,8 +20,8 @@ package org.apache.openmeetings.web.pages.auth;
 
 import static java.nio.charset.StandardCharsets.UTF_8;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_IGNORE_BAD_SSL;
-import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_REGISTER_FRONTEND;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.getBaseUrl;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.isAllowRegisterFrontend;
 import static org.apache.openmeetings.web.app.Application.urlForPage;
 
 import java.io.DataOutputStream;
@@ -145,7 +145,7 @@ public class SignInPage extends BaseInitedPage {
        }
 
        boolean allowRegister() {
-               return cfgDao.getBool(CONFIG_REGISTER_FRONTEND, false);
+               return isAllowRegisterFrontend();
        }
 
        boolean allowOAuthLogin() {
diff --git 
a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
 
b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
index ba01946..1e7e5fe 100644
--- 
a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
+++ 
b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
@@ -21,6 +21,7 @@ package org.apache.openmeetings.webservice;
 import static org.apache.openmeetings.db.dto.basic.ServiceResult.UNKNOWN;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getDefaultGroup;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getDefaultTimezone;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.isAllowRegisterSoap;
 import static org.apache.openmeetings.webservice.Constants.TNS;
 import static org.apache.openmeetings.webservice.Constants.USER_SERVICE_NAME;
 import static 
org.apache.openmeetings.webservice.Constants.USER_SERVICE_PORT_NAME;
@@ -159,6 +160,9 @@ public class UserWebService extends BaseWebService {
                        )
        {
                return performCall(sid, User.Right.Soap, sd -> {
+                       if (!isAllowRegisterSoap()) {
+                               throw new ServiceException("Soap register is 
denied in Settings");
+                       }
                        User testUser = 
userDao.getExternalUser(user.getExternalId(), user.getExternalType());
 
                        if (testUser != null) {

Reply via email to