diff --git a/modules/integration/tests-integration/tests-backend/src/test/java/org/wso2/identity/integration/test/saml/SAMLSSOTestCase.java b/modules/integration/tests-integration/tests-backend/src/test/java/org/wso2/identity/integration/test/saml/SAMLSSOTestCase.java index b4485ee871..2ff05bf8c8 100644 --- a/modules/integration/tests-integration/tests-backend/src/test/java/org/wso2/identity/integration/test/saml/SAMLSSOTestCase.java +++ b/modules/integration/tests-integration/tests-backend/src/test/java/org/wso2/identity/integration/test/saml/SAMLSSOTestCase.java @@ -284,7 +284,7 @@ public void testAddSP() throws Exception { SAMLSSOServiceProviderDTO[] samlssoServiceProviderDTOs = ssoConfigServiceClient .getServiceProviders().getServiceProviders(); Assert.assertEquals(samlssoServiceProviderDTOs[0].getIssuer(), config.getApp().getArtifact(), - "Adding a service provider has failed for " + config); + "Adding a service provider has failed for " + config); } @Test(description = "Remove service provider", groups = "wso2.is", dependsOnMethods = { "testSAMLSSOLogout" }) @@ -295,7 +295,7 @@ public void testRemoveSP() } @Test(alwaysRun = true, description = "Testing SAML SSO login", groups = "wso2.is", - dependsOnMethods = { "testAddSP" }) + dependsOnMethods = { "testAddSP" }) public void testSAMLSSOLogin() { try { HttpResponse response; @@ -323,14 +323,14 @@ public void testSAMLSSOLogin() { resultPage = extractDataFromResponse(response); Assert.assertTrue(resultPage.contains("You are logged in as " + config.getUser().getTenantAwareUsername()), - "SAML SSO Login failed for " + config); + "SAML SSO Login failed for " + config); } catch (Exception e) { Assert.fail("SAML SSO Login test failed for " + config, e); } } @Test(alwaysRun = true, description = "Testing SAML SSO Claims", groups = "wso2.is", - dependsOnMethods = { "testSAMLSSOLogin" }) + dependsOnMethods = { "testSAMLSSOLogin" }) public void testClaims(){ String claimString = resultPage.substring(resultPage.lastIndexOf("")); @@ -345,7 +345,7 @@ public void testClaims(){ } @Test(alwaysRun = true, description = "Testing SAML SSO logout", groups = "wso2.is", - dependsOnMethods = { "testSAMLSSOLogin" }) + dependsOnMethods = { "testSAMLSSOLogin" }) public void testSAMLSSOLogout() throws Exception { try { HttpResponse response; @@ -367,7 +367,7 @@ public void testSAMLSSOLogout() throws Exception { String resultPage = extractDataFromResponse(response); Assert.assertTrue(resultPage.contains("index.jsp") && !resultPage.contains("error"), - "SAML SSO Logout failed for " + config); + "SAML SSO Logout failed for " + config); } catch (Exception e) { Assert.fail("SAML SSO Logout test failed for " + config, e); } @@ -399,13 +399,13 @@ private void assertLocalClaims(String claims){ Map attributeMap = extractClaims(claims); Assert.assertTrue(attributeMap.containsKey(firstNameClaimURI), "Claim nickname is expected"); Assert.assertEquals(attributeMap.get(firstNameClaimURI), config.getUser().getNickname(), - "Expected claim value for nickname is " + config.getUser().getNickname()); + "Expected claim value for nickname is " + config.getUser().getNickname()); Assert.assertTrue(attributeMap.containsKey(lastNameClaimURI), "Claim lastname is expected"); Assert.assertEquals(attributeMap.get(lastNameClaimURI), config.getUser().getUsername(), - "Expected claim value for lastname is " + config.getUser().getUsername()); + "Expected claim value for lastname is " + config.getUser().getUsername()); Assert.assertTrue(attributeMap.containsKey(emailClaimURI), "Claim email is expected"); Assert.assertEquals(attributeMap.get(emailClaimURI), config.getUser().getEmail(), - "Expected claim value for email is " + config.getUser().getEmail()); + "Expected claim value for email is " + config.getUser().getEmail()); } private void assertNoneClaims(String claims){ @@ -439,10 +439,10 @@ private Tomcat getTomcat() { private void setSystemProperties() { URL resourceUrl = getClass().getResource(File.separator + "keystores" + File.separator - + "products" + File.separator + "wso2carbon.jks"); + + "products" + File.separator + "wso2carbon.jks"); System.setProperty("javax.net.ssl.trustStore", resourceUrl.getPath()); System.setProperty("javax.net.ssl.trustStorePassword", - "wso2carbon"); + "wso2carbon"); System.setProperty("javax.net.ssl.trustStoreType", "JKS"); } @@ -573,8 +573,8 @@ private void createUser(){ try { // creating the user remoteUSMServiceClient.addUser(config.getUser().getTenantAwareUsername(), config.getUser().getPassword(), - null, getUserClaims(), - profileName, true); + null, getUserClaims(), + profileName, true); } catch (Exception e) { Assert.fail("Error while creating the user", e); } @@ -659,4 +659,4 @@ private ClaimValue[] getUserClaims(){ return claimValues; } -} +} \ No newline at end of file diff --git a/modules/integration/tests-integration/tests-backend/src/test/resources/testng.xml b/modules/integration/tests-integration/tests-backend/src/test/resources/testng.xml index 657e212d89..9ef8822938 100644 --- a/modules/integration/tests-integration/tests-backend/src/test/resources/testng.xml +++ b/modules/integration/tests-integration/tests-backend/src/test/resources/testng.xml @@ -25,7 +25,7 @@ - + @@ -34,7 +34,7 @@ - + @@ -47,15 +47,15 @@ - + - + - + diff --git a/modules/jaggery-apps/user-dashboard/dashboard/controllers/user-registration/add.jag b/modules/jaggery-apps/user-dashboard/dashboard/controllers/user-registration/add.jag index b91fb6d429..369075358a 100644 --- a/modules/jaggery-apps/user-dashboard/dashboard/controllers/user-registration/add.jag +++ b/modules/jaggery-apps/user-dashboard/dashboard/controllers/user-registration/add.jag @@ -2,12 +2,16 @@ var log = new Log(); var selfReg = require('/controllers/user-registration/userRegistrationClient.jag'); +var userRegClient = require('/controllers/user-registration/userRegistrationServiceClient.jag'); +var userDTO = Packages.org.wso2.carbon.identity.user.registration.stub.dto.UserDTO; +var userFieldDTO = Packages.org.wso2.carbon.identity.user.registration.stub.dto.UserFieldDTO; var constants = require("../../util/constants.jag"); var util = require("../../util/utility.jag"); var i18n = util.initI18N(); function edit(){ + var user = new userDTO(); var messages = i18n.localize("messages"); try{ var claim = constants.DEFAULT_CLAIM_URL; @@ -15,16 +19,6 @@ function edit(){ claim = constants.OPENID_REG_CLAIM_URL; } - - var req = - - - - - ; - - var userName = ; - var domain = request.getParameter("domain"); var userNameVal = request.getParameter("userName"); var pwd = request.getParameter("pwd"); @@ -54,15 +48,17 @@ function edit(){ return; } - req.*::user.*::openID.setChildren(session.get("openIdURL")); - req.*::user.*::password.setChildren(pwd); - userName.setChildren(domain + "/" + userNameVal); - + user.setUserName(domain + "/" + userNameVal); + user.setPassword(pwd); + user.setOpenID(session.get("openIdURL")) ; var fieldValues = selfReg.readUserFieldsForUserRegistration(claim, true); fieldValues = fieldValues.*::['return']; + var userFields = []; + var i =0; + log.debug(fieldValues); for each (var f in fieldValues){ @@ -77,43 +73,45 @@ function edit(){ return; } - var fieldValue = - - - - - - - - - - - ; - - fieldValue.*::claimUri.setChildren(f.*::['claimUri'].text()); - fieldValue.*::defaultValue.setChildren(f.*::['defaultValue'].text()); - fieldValue.*::displayOrder.setChildren(f.*::['displayOrder'].text()); - fieldValue.*::fieldName.setChildren(f.*::['fieldName'].text()); - - fieldValue.*::inputValues.setChildren(f.*::['inputValues'].text()); - fieldValue.*::maxLength.setChildren(f.*::['maxLength'].text()); - fieldValue.*::minLength.setChildren(f.*::['minLength'].text()); - fieldValue.*::regEx.setChildren(f.*::['regEx'].text()); - fieldValue.*::required.setChildren(f.*::['required'].text()); + var fieldDTO = new userFieldDTO(); + var inputValues = f.*::['inputValues']; + var inputValArray = []; + var j = 0; + + for each (var inVal in inputValues){ + inputValArray[j]= inVal.text(); + } + + + + fieldDTO.setClaimUri(f.*::['claimUri'].text()); + fieldDTO.setDefaultValue(f.*::['defaultValue'].text()); + fieldDTO.setDisplayOrder(f.*::['displayOrder'].text()); + fieldDTO.setFieldName(f.*::['fieldName'].text()); + + fieldDTO.setInputValues(inputValArray); + fieldDTO.setMaxLength(f.*::['maxLength'].text()); + fieldDTO.setMinLength(f.*::['minLength'].text()); + fieldDTO.setRegEx(f.*::['regEx'].text()); + fieldDTO.setRequired(Boolean(f.*::['required'].text())); if(value != null && value.length > 0){ - fieldValue.*::fieldValue.setChildren(value); - } + fieldDTO.setFieldValue(value); + } else{ + fieldDTO.setFieldValue(""); + } + - req.*::['user'].appendChild(fieldValue); + userFields[i] = fieldDTO; + i++; } - req.*::['user'].appendChild(userName); - selfReg.addUser(req); + user.setUserFields(userFields); + userRegClient.addUser(user); response.sendRedirect("../../login.jag?"); }catch(e){ log.error(e); - response.sendRedirect("index.jag?e=1&error=service_invok_error"); + response.sendRedirect("../../landing.jag?e=1&error=" + getErrorMessage(e.message)); } } @@ -138,4 +136,13 @@ function validate(value, f){ edit(); +function getErrorMessage(message) { + var msg = message.split(':'); + if (msg.length > 0) { + return msg[2].toString().replaceAll('\'',' '); + } + return 'Error while adding user'; +} + + %> diff --git a/modules/jaggery-apps/user-dashboard/dashboard/controllers/user-registration/userRegistrationServiceClient.jag b/modules/jaggery-apps/user-dashboard/dashboard/controllers/user-registration/userRegistrationServiceClient.jag new file mode 100644 index 0000000000..15bad7188d --- /dev/null +++ b/modules/jaggery-apps/user-dashboard/dashboard/controllers/user-registration/userRegistrationServiceClient.jag @@ -0,0 +1,27 @@ +<% + +var log = new Log(); + +var util = require("../../util/utility.jag"); +var serverUrl = util.getServerUrl() + "/UserRegistrationAdminService"; +var connectorStub = Packages.org.wso2.carbon.identity.user.registration.stub.UserRegistrationAdminServiceStub; +var userDTO = Packages.org.wso2.carbon.identity.user.registration.stub.dto.UserDTO; +var HTTPConstants = Packages.org.apache.axis2.transport.http.HTTPConstants; + +function addUser(user) { + try { + var serviceStub = new connectorStub(serverUrl); + var serviceClient = serviceStub._getServiceClient(); + var option = serviceClient.getOptions(); + option.setManageSession(true); + var cookie = session.get("auth-cookie"); + option.setProperty(HTTPConstants.COOKIE_STRING, cookie); + + serviceStub.addUser(user); + } catch (e) { + throw e; + } +} + + +%> \ No newline at end of file diff --git a/modules/jaggery-apps/user-dashboard/dashboard/landing.jag b/modules/jaggery-apps/user-dashboard/dashboard/landing.jag index 596aa18582..6618f34e06 100644 --- a/modules/jaggery-apps/user-dashboard/dashboard/landing.jag +++ b/modules/jaggery-apps/user-dashboard/dashboard/landing.jag @@ -30,6 +30,14 @@ + <%if(request.getParameter("error") != null && request.getParameter("error").length > 0) {%> + + <%}%> diff --git a/modules/p2-profile-gen/pom.xml b/modules/p2-profile-gen/pom.xml index 5f32071088..6613e02019 100644 --- a/modules/p2-profile-gen/pom.xml +++ b/modules/p2-profile-gen/pom.xml @@ -133,7 +133,7 @@ org.wso2.carbon.identity:org.wso2.carbon.identity.provider.server.feature:${carbon.identity.version} org.wso2.carbon.identity:org.wso2.carbon.idp.mgt.feature:${carbon.identity.version} org.wso2.carbon.identity:org.wso2.carbon.identity.mgt.feature:${carbon.identity.version} - org.wso2.carbon.identity:org.wso2.carbon.identity.self.registration.server.feature:${carbon.identity.version} + org.wso2.carbon.identity:org.wso2.carbon.identity.self.registration.feature:${carbon.identity.version} org.wso2.carbon.identity:org.wso2.carbon.identity.user.profile.feature:${carbon.identity.version} org.wso2.carbon.identity:org.wso2.carbon.identity.xacml.feature:${carbon.identity.version} org.wso2.carbon.identity:org.wso2.carbon.claim.mgt.feature:${carbon.identity.version} @@ -344,14 +344,13 @@ ${carbon.identity.version} - org.wso2.carbon.identity.self.registration.server.feature.group + org.wso2.carbon.identity.self.registration.feature.group ${carbon.identity.version} org.wso2.carbon.identity.user.profile.feature.group ${carbon.identity.version} - org.wso2.carbon.identity.xacml.feature.group ${carbon.identity.version}