diff --git a/jams-server/src/main/java/net/jami/jams/server/core/workflows/InstallationFinalizer.java b/jams-server/src/main/java/net/jami/jams/server/core/workflows/InstallationFinalizer.java index 67a03d3b3e64b54ee67c746bf35ce00a48bb2d0f..a4b4f16d1a9e1489481a903c045db5305d05dcdb 100644 --- a/jams-server/src/main/java/net/jami/jams/server/core/workflows/InstallationFinalizer.java +++ b/jams-server/src/main/java/net/jami/jams/server/core/workflows/InstallationFinalizer.java @@ -68,10 +68,10 @@ public class InstallationFinalizer { } if (CachedObjects.localAuthSettings != null) { serverSettings.setLocalDirectoryConfiguration(JsonStream.serialize(CachedObjects.localAuthSettings)); - if(CachedObjects.localAuthSettings.getPublicNames()){ + if (CachedObjects.localAuthSettings.getPublicNames()) { useLocalNS = false; nameServer = new PublicNameServer(CachedObjects.localAuthSettings.getPublicNameServer()); - log.warn("Server configured to use {} as the nameserver for Jami clients !",CachedObjects.localAuthSettings.getPublicNameServer()); + log.warn("Server configured to use {} as the nameserver for Jami clients !", CachedObjects.localAuthSettings.getPublicNameServer()); } log.info("Server is configured to use local authentication engine"); } diff --git a/jams-server/src/main/java/net/jami/jams/server/servlets/api/install/StartInstallServlet.java b/jams-server/src/main/java/net/jami/jams/server/servlets/api/install/StartInstallServlet.java index a3de6eee0d1ae8dcbb287652af5f31cd23c2892a..92cb3c9d8fd06727b91b4726347bf3384e56fb7f 100644 --- a/jams-server/src/main/java/net/jami/jams/server/servlets/api/install/StartInstallServlet.java +++ b/jams-server/src/main/java/net/jami/jams/server/servlets/api/install/StartInstallServlet.java @@ -29,6 +29,7 @@ import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; +import lombok.extern.slf4j.Slf4j; import net.jami.jams.common.authentication.AuthenticationSourceType; import net.jami.jams.common.authmodule.AuthTokenResponse; import net.jami.jams.common.dao.StatementElement; @@ -43,6 +44,7 @@ import java.util.List; import static net.jami.jams.server.Server.dataStore; import static net.jami.jams.server.servlets.api.auth.login.AuthRequestProcessor.processUsernamePasswordAuth; +@Slf4j @WebServlet("/api/install/start") public class StartInstallServlet extends HttpServlet { @@ -50,14 +52,11 @@ public class StartInstallServlet extends HttpServlet { protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //Here we must decide which page to show - login or sign-up StatementList statementList = new StatementList(); - StatementElement statementElement = new StatementElement("username","=","*",""); - statementList.addStatement(statementElement); - - List<User> results = dataStore.getUserDao().getObjects(statementList); - if(results.size() > 0) - resp.setStatus(404); + statementList.addStatement(new StatementElement("username","=","*","")); + if(dataStore.getUserDao().getObjects(null).size() > 0) + resp.setHeader("showLogin","true"); else - resp.setStatus(200); + resp.setHeader("showLogin","false"); } diff --git a/jams-server/src/main/resources/webapp/js/api.js b/jams-server/src/main/resources/webapp/js/api.js index 878387dcdee5d2dc50d35f25e7a0513871717621..029b730212667d10ca0a6665be44b412e2b22013 100644 --- a/jams-server/src/main/resources/webapp/js/api.js +++ b/jams-server/src/main/resources/webapp/js/api.js @@ -40,7 +40,7 @@ var api_path_post_install_admin = '/api/install/start'; var api_path_post_auth_login = '/api/auth/login'; var api_path_post_install_ca = '/api/install/ca'; var api_path_post_install_auth = '/api/install/auth'; -var api_path_post_install_server = '/api/jumpstart/setupServer'; +var api_path_post_install_server = '/api/install/settings'; var api_path_get_install_lastKnownStep = '/api/install/lastStep'; var api_path_get_auth_users = '/api/auth/users'; var api_path_get_auth_user_search = '/api/auth/users'; diff --git a/jams-server/src/main/resources/webapp/js/auth.js b/jams-server/src/main/resources/webapp/js/auth.js index c298860c11588e4443f30cdd170590eca9041a07..44401ceaf658ad833e7d309fce454665a8762c3f 100644 --- a/jams-server/src/main/resources/webapp/js/auth.js +++ b/jams-server/src/main/resources/webapp/js/auth.js @@ -26,7 +26,10 @@ function signupPageHandler(data, statusCode, jqXHR) { // create Admin - if(data.status == "200") { + console.log(data); + console.log(data.getResponseHeader('showLogin')); + + if(data.getResponseHeader('showLogin') == "false") { var inputConfirmPassword = '<div class="form-label-group"><label for="confirmPassword" class="label-title">Confirm Password</label><input type="password" name="confirmPassword" id="inputConfirmPassword" class="form-control" required autocomplete="off"><span id="message"></span></div>'; admin_account = false; $('.title').text("Administrator account creation"); @@ -36,7 +39,7 @@ $('#form-signup').removeClass('d-none'); $('#admin-password-progress-bar-container').show(); } - else if (data.status == "404") { + else if (data.getResponseHeader('showLogin') == "true") { admin_account = true; $('.title').text("Access your account"); $('.form-submit').val("Log in"); diff --git a/jams-server/src/main/resources/webapp/js/ca-setup.js b/jams-server/src/main/resources/webapp/js/ca-setup.js index fe550b84e48c55eeb7bf1fa9b1e410da64e29fb0..37e75221c55e0a4fc62102c54357fc8428596482 100644 --- a/jams-server/src/main/resources/webapp/js/ca-setup.js +++ b/jams-server/src/main/resources/webapp/js/ca-setup.js @@ -46,14 +46,14 @@ $(document).ready(function () { $('#form-ca-auto').submit(function (event) { event.preventDefault(); var data = { - 'generationData': { + 'fields': { 'commonName': $('#inputCaName').val(), 'organizationalUnit': $('#inputOrgUnit').val(), 'organization': $('#inputOrganization').val(), 'city': $('#inputCity').val(), 'state': $('#inputState').val(), 'country': $('#inputCountry').val(), - 'validity': parseInt($('#inputValidity').val()) + 'lifetime': parseInt($('#inputValidity').val()) } } // send post request diff --git a/jams-server/src/main/resources/webapp/js/config.js b/jams-server/src/main/resources/webapp/js/config.js index 56a22549a12d6c07d09e7c188ec87da9851ea4bd..4552f209704dd8fb459808b3c6e8d3da90417fdd 100644 --- a/jams-server/src/main/resources/webapp/js/config.js +++ b/jams-server/src/main/resources/webapp/js/config.js @@ -20,7 +20,7 @@ // declaring variables var selected_names = ['useStartTLS', 'usernameField', 'sSL']; -var type_int_name_input = ['deviceValidity', 'userValidity']; +var type_int_name_input = ['deviceLifetime', 'userLifetime']; var auth_action = null; var auth_type = null; @@ -31,16 +31,16 @@ ajaxApiCall(api_path_get_post_configuration_global_settings,'GET',null,null,getA function getAllConfigurations(data, statusCode, jqXHR) { if (jqXHR.status == 200 && data.length != 0) { var domain = data.domain; - var crlValidity = data.crlValidity; - var deviceValidity = data.deviceValidity; - var userValidity = data.userValidity; + var crlLifetime = data.crlLifetime; + var deviceLifetime = data.deviceLifetime; + var userLifetime = data.userLifetime; var ldapConfigurations = data.ldapConfigurations; var adConfigurations = data.activeDirectoryConfgurations; // var hsqlConfigurations = data.hsqlConfigurations; setADblocks(adConfigurations); setLDAPblocks(ldapConfigurations); // setHSQLblocks(hsqlConfigurations); - setServerParameters(domain,crlValidity,deviceValidity,userValidity); + setServerParameters(domain,crlLifetime,deviceLifetime,userLifetime); $('[data-toggle="tooltip"]').tooltip(); if(sessionStorage.getItem("auth_added") !== ""){ var msg = sessionStorage.getItem("auth_added"); @@ -248,14 +248,14 @@ $("#form-server-parameters").submit(function(event) { }); // setServerParameters configruation block -function setServerParameters(domain,crlValidity,deviceValidity,userValidity) { +function setServerParameters(domain,crlLifetime,deviceLifetime,userLifetime) { $('input[name="domain"]').val(domain); - $("option[value='" + deviceValidity + "']", "select[name='deviceValidity']").prop('selected', true); - $("#deviceValidity").data('selectpicker').refresh(); - $("option[value='" + crlValidity + "']", "select[name='crlValidity']").prop('selected', true); - $("#crlValidity").data('selectpicker').refresh(); - $("option[value='" + userValidity + "']", "select[name='userValidity']").prop('selected', true); - $("#userValidity").data('selectpicker').refresh(); + $("option[value='" + deviceLifetime + "']", "select[name='deviceLifetime']").prop('selected', true); + $("#deviceLifetime").data('selectpicker').refresh(); + $("option[value='" + crlLifetime + "']", "select[name='crlLifetime']").prop('selected', true); + $("#crlLifetime").data('selectpicker').refresh(); + $("option[value='" + userLifetime + "']", "select[name='userLifetime']").prop('selected', true); + $("#userLifetime").data('selectpicker').refresh(); } // build server parameters json object diff --git a/jams-server/src/main/resources/webapp/js/identity-management.js b/jams-server/src/main/resources/webapp/js/identity-management.js index b700e0196d0bbffd7cd12ae933021805a965bc67..53e5e2e61e03f02b54ffc84415622e8c3d7898f1 100644 --- a/jams-server/src/main/resources/webapp/js/identity-management.js +++ b/jams-server/src/main/resources/webapp/js/identity-management.js @@ -63,16 +63,15 @@ function setLDAPParametersData(form) { // settings['usernameField'] = "uid"; // settings['realm'] = "savoirfairelinux"; settings['fieldMappings'] = {}; - settings['fieldMappings']['givenName'] = "FirstName"; - settings['fieldMappings']['sn'] = "LastName"; - settings['fieldMappings']['jpegPhoto'] = "ProfilePicture"; - settings['fieldMappings']['mail'] = "Email"; - settings['fieldMappings']['telephoneNumber'] = "PhoneNumber"; - settings['fieldMappings']['mobile'] = "MobileNumber"; - settings['fieldMappings']['facsimileTelephoneNumber'] = "FaxNumber"; - settings['fieldMappings']['extensionName'] = "PhoneNumberExtension"; - settings['fieldMappings']['o'] = "Organization"; - console.log(settings); + settings['fieldMappings']['givenName'] = "FirstName"; + settings['fieldMappings']['sn'] = "LastName"; + settings['fieldMappings']['jpegPhoto'] = "ProfilePicture"; + settings['fieldMappings']['mail'] = "Email"; + settings['fieldMappings']['telephoneNumber'] = "PhoneNumber"; + settings['fieldMappings']['mobile'] = "MobileNumber"; + settings['fieldMappings']['facsimileTelephoneNumber'] = "FaxNumber"; + settings['fieldMappings']['extensionName'] = "PhoneNumberExtension"; + settings['fieldMappings']['o'] = "Organization"; authSource['type'] = 'LDAP'; authSource['ldapSettings'] = settings; diff --git a/jams-server/src/main/resources/webapp/js/server-parameters.js b/jams-server/src/main/resources/webapp/js/server-parameters.js index 9b22cd61ae73509fbd331c76237adec9f6f20b1a..0ca25f1e8a6e65dabea3ef28cf09f56310935472 100644 --- a/jams-server/src/main/resources/webapp/js/server-parameters.js +++ b/jams-server/src/main/resources/webapp/js/server-parameters.js @@ -18,7 +18,7 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -var type_int_name_input = ['deviceValidity', 'userValidity']; +var type_int_name_input = ['deviceLifetime', 'userLifetime']; var callback = set_installation_response("search.html", true); $(document).ready(function () { @@ -49,10 +49,10 @@ $("#form-server-parameters").submit(function (event) { }); -$('#deviceValidity').on('change', function() { +$('#deviceLifetime').on('change', function() { // disable userlife time if it's less than the device lifetime var device_value = $(this).val(); - $('#userValidity > option').each(function(){ + $('#userLifetime > option').each(function(){ if(parseInt(device_value) <= parseInt(this.value)){ $(this).prop('disabled', false); } @@ -63,27 +63,27 @@ $('#deviceValidity').on('change', function() { }); function setParametersData(form) { - var parameters_data = { - 'settings': { - } - } + var data = {} $.each($(form).serializeArray(), function (i, field) { if (type_int_name_input.indexOf(field.name) >= 0) { - parameters_data['settings'][field.name] = parseInt(field.value); + data[field.name] = parseInt(field.value); } else { - parameters_data['settings'][field.name] = field.value; + data[field.name] = field.value; } }); if ($('#sipContents').val() != "") - parameters_data['settings']['sipConfig'] = $('#sipContents').val(); + data['sipConfig'] = $('#sipContents').val(); - parameters_data['settings']['domain'] = $('#domain').val(); + // no bad dog + data['crlLifetime'] = 300000; + data['serverDomain'] = $('#domain').val(); + data['signingAlgorithm'] = "SHA512WITHRSA"; // send parameters via POST request - postParameters(parameters_data) + postParameters(data) } // send AJAX request diff --git a/jams-server/src/main/resources/webapp/js/signup.js b/jams-server/src/main/resources/webapp/js/signup.js index d15fb96b65a163a1a6b5dc2d370cb89728e77c9f..b3a0596e03c2ded514b5ab748db76389222e0382 100644 --- a/jams-server/src/main/resources/webapp/js/signup.js +++ b/jams-server/src/main/resources/webapp/js/signup.js @@ -84,9 +84,6 @@ $('#cancel-submit').click(function (event) { }); function createAdminCallBackHandler(data, statusCode, jqXHR) { - console.log(data); - console.log(statusCode); - console.log(jqXHR); if (jqXHR.status == 200 && data.access_token != 'null') { // set username token setJWT(data); @@ -96,9 +93,6 @@ function createAdminCallBackHandler(data, statusCode, jqXHR) { function signinCallBackHandler(data, statusCode, jqXHR) { - console.log(jqXHR.status); - console.log(data); - if (jqXHR.status == 200 && data.token != 'null' && (data.needsReset == false || data.needsReset == null)) { date.setTime(date.getTime() + (minutes * 60 * 1000)); // set username token diff --git a/jams-server/src/main/resources/webapp/templates/config.html b/jams-server/src/main/resources/webapp/templates/config.html index 6057afdd33d2cfb5c3e12ac5b4872e251df9af5d..697a060cd44ca76fad9fc04dace62a21f2319ffa 100644 --- a/jams-server/src/main/resources/webapp/templates/config.html +++ b/jams-server/src/main/resources/webapp/templates/config.html @@ -99,7 +99,7 @@ </div> <div class="label-description"></div> <div class="select_wrapper-picker"> - <select id="crlValidity" name="crlValidity" class="selectpicker" required> + <select id="crlLifetime" name="crlLifetime" class="selectpicker" required> <option value="300000">5 minutes</option> <option value="600000">10 minutes</option> <option value="900000">15 minutes</option> @@ -112,7 +112,7 @@ <div class="label-title">Device Lifetime</div> <div class="label-description"></div> <div class="select_wrapper-picker"> - <select id="deviceValidity" name="deviceValidity" class="selectpicker" required> + <select id="deviceLifetime" name="deviceLifetime" class="selectpicker" required> <option value="2629746000">1 Month</option> <option value="7889238000">3 Months</option> <option value="15778476000">6 Months</option> @@ -125,7 +125,7 @@ <div class="label-title">User Account Lifetime</div> <div class="label-description"></div> <div class="select_wrapper-picker"> - <select id="userValidity" name="userValidity" class="selectpicker" required> + <select id="userLifetime" name="userLifetime" class="selectpicker" required> <option value="31556952000">1 Year</option> <option value="157784760000">5 Years</option> <option value="315569520000">10 Years</option> diff --git a/jams-server/src/main/resources/webapp/templates/server-parameters.html b/jams-server/src/main/resources/webapp/templates/server-parameters.html index 90ec61a557a7b9854ddfb93f20e7376257302649..354c4bb7d8b4023dcb8f82473ca186183d220fea 100644 --- a/jams-server/src/main/resources/webapp/templates/server-parameters.html +++ b/jams-server/src/main/resources/webapp/templates/server-parameters.html @@ -63,7 +63,7 @@ <i class="fa fa-info-circle" data-toggle="tooltip" data-placement="right" title="Set the domain of the web client server to connect to the JAMS admin dashboard and Jami accounts. It is also used to define where the clients should download CRLs and submit OCSP queries. In case you are running a proxied instance (i.e. JAMS behind IIS), please make sure to set this field correctly, otherwise devices will not be able to download CRLs or validate certificates."></i></div> <div class="label-description">The domain name of your web client server. Requires http:// or https://</div> <div class="input_wrapper-picker"> - <input id="domain" name="domain" type="text" class="form-control" required> + <input id="domain" name="serverDomain" type="text" class="form-control" required> </div> </div> <div class="form-label-group"> @@ -71,7 +71,7 @@ <i class="fa fa-info-circle" data-toggle="tooltip" data-placement="right" title="Set the lifetime of the CRL which contains the list of the certificates that have been revoked before their scheduled expiration date."></i></div> <div class="label-description"></div> <div class="select_wrapper-picker"> - <select name="crlValidity" class="selectpicker" required> + <select name="crlLifetime" class="selectpicker" required> <option value="300000">5 minutes</option> <option value="600000">10 minutes</option> <option value="900000">15 minutes</option> @@ -84,7 +84,7 @@ <div class="label-title">Device Lifetime</div> <div class="label-description"></div> <div class="select_wrapper-picker"> - <select id="deviceValidity" name="deviceValidity" class="selectpicker" required> + <select id="deviceLifetime" name="deviceLifetime" class="selectpicker" required> <option value="2629746000">1 Month</option> <option value="7889238000">3 Months</option> <option value="15778476000">6 Months</option> @@ -97,7 +97,7 @@ <div class="label-title">User Account Lifetime</div> <div class="label-description"></div> <div class="select_wrapper-picker"> - <select id="userValidity" name="userValidity" class="selectpicker" required> + <select id="userLifetime" name="userLifetime" class="selectpicker" required> <option value="31556952000">1 Year</option> <option value="157784760000">5 Years</option> <option value="315569520000">10 Years</option>