Index: lams_build/lib/lams/lams.jar
===================================================================
diff -u -r546326a1c9952295d30be9caa0457926a5e35bce -r206cb40e4252d7fb4c26b5468d2991d9a91812e5
Binary files differ
Index: lams_central/src/java/org/lamsfoundation/lams/webservice/Register.java
===================================================================
diff -u -r58ac13faf486a9e6d3422d50b6c131e5a3ef6d99 -r206cb40e4252d7fb4c26b5468d2991d9a91812e5
--- lams_central/src/java/org/lamsfoundation/lams/webservice/Register.java (.../Register.java) (revision 58ac13faf486a9e6d3422d50b6c131e5a3ef6d99)
+++ lams_central/src/java/org/lamsfoundation/lams/webservice/Register.java (.../Register.java) (revision 206cb40e4252d7fb4c26b5468d2991d9a91812e5)
@@ -8,5 +8,12 @@
package org.lamsfoundation.lams.webservice;
public interface Register extends java.rmi.Remote {
- public boolean createUser(String username, String password, String firstName, String lastName, String email) throws java.rmi.RemoteException;
+ public boolean createUser(String username,
+ String password,
+ String firstName,
+ String lastName,
+ String email,
+ String serverId,
+ String datetime,
+ String hash) throws java.rmi.RemoteException;
}
Index: lams_central/src/java/org/lamsfoundation/lams/webservice/RegisterServiceSoapBindingImpl.java
===================================================================
diff -u -r4a2728da7ea82a98b92d3a8b08feb6efa4023b7d -r206cb40e4252d7fb4c26b5468d2991d9a91812e5
--- lams_central/src/java/org/lamsfoundation/lams/webservice/RegisterServiceSoapBindingImpl.java (.../RegisterServiceSoapBindingImpl.java) (revision 4a2728da7ea82a98b92d3a8b08feb6efa4023b7d)
+++ lams_central/src/java/org/lamsfoundation/lams/webservice/RegisterServiceSoapBindingImpl.java (.../RegisterServiceSoapBindingImpl.java) (revision 206cb40e4252d7fb4c26b5468d2991d9a91812e5)
@@ -16,13 +16,14 @@
import org.apache.axis.MessageContext;
import org.apache.axis.transport.http.HTTPConstants;
import org.apache.log4j.Logger;
+import org.lamsfoundation.lams.integration.ExtServerOrgMap;
+import org.lamsfoundation.lams.integration.security.Authenticator;
+import org.lamsfoundation.lams.integration.service.IIntegrationService;
import org.lamsfoundation.lams.lesson.Lesson;
import org.lamsfoundation.lams.lesson.service.ILessonService;
import org.lamsfoundation.lams.themes.CSSThemeVisualElement;
import org.lamsfoundation.lams.usermanagement.AuthenticationMethod;
import org.lamsfoundation.lams.usermanagement.Organisation;
-import org.lamsfoundation.lams.usermanagement.OrganisationState;
-import org.lamsfoundation.lams.usermanagement.OrganisationType;
import org.lamsfoundation.lams.usermanagement.Role;
import org.lamsfoundation.lams.usermanagement.SupportedLocale;
import org.lamsfoundation.lams.usermanagement.User;
@@ -37,8 +38,6 @@
Logger log = Logger.getLogger(RegisterServiceSoapBindingImpl.class);
- private static final String DEMO_ORG_NAME = "Demo Course";
-
private static MessageContext context = MessageContext.getCurrentContext();
private static IUserManagementService service = (IUserManagementService) WebApplicationContextUtils
@@ -51,9 +50,16 @@
((HttpServlet) context.getProperty(HTTPConstants.MC_HTTP_SERVLET))
.getServletContext()).getBean("lessonService");
+ private static IIntegrationService integrationService = (IIntegrationService) WebApplicationContextUtils
+ .getRequiredWebApplicationContext(
+ ((HttpServlet) context.getProperty(HTTPConstants.MC_HTTP_SERVLET))
+ .getServletContext()).getBean("integrationService");
+
public boolean createUser(String username, String password, String firstName, String lastName,
- String email) throws java.rmi.RemoteException {
+ String email, String serverId, String datetime, String hash) throws java.rmi.RemoteException {
try {
+ ExtServerOrgMap extServer = integrationService.getExtServerOrgMap(serverId);
+ Authenticator.authenticate(extServer, datetime, hash);
if (service.getUserByLogin(username) != null)
return false;
User user = new User();
@@ -80,7 +86,7 @@
user.setHtmlTheme(htmlTheme);
}
service.save(user);
- Organisation org = getDemoOrg(user);
+ Organisation org = extServer.getOrganisation();
addMemberships(user, org);
addUserToLessons(user, org);
return true;
@@ -125,25 +131,4 @@
}
}
- private Organisation getDemoOrg(User user) {
- Organisation org = null;
- List list = service.findByProperty(Organisation.class, "name", DEMO_ORG_NAME);
- if (list != null && list.size() > 0) {
- org = (Organisation) list.get(0);
- }
- if (org == null) {
- org = new Organisation();
- org.setName(DEMO_ORG_NAME);
- org.setParentOrganisation(service.getRootOrganisation());
- org.setOrganisationType((OrganisationType) service.findById(OrganisationType.class,
- OrganisationType.COURSE_TYPE));
- org.setOrganisationState((OrganisationState) service.findById(OrganisationState.class,
- OrganisationState.ACTIVE));
- org.setLocale(getLocale());
- service.saveOrganisation(org, user.getUserId());
- }
- log.debug(" Got org " + org.getOrganisationId());
- return org;
- }
-
}
Index: lams_central/src/java/org/lamsfoundation/lams/webservice/RegisterServiceSoapBindingSkeleton.java
===================================================================
diff -u -r58ac13faf486a9e6d3422d50b6c131e5a3ef6d99 -r206cb40e4252d7fb4c26b5468d2991d9a91812e5
--- lams_central/src/java/org/lamsfoundation/lams/webservice/RegisterServiceSoapBindingSkeleton.java (.../RegisterServiceSoapBindingSkeleton.java) (revision 58ac13faf486a9e6d3422d50b6c131e5a3ef6d99)
+++ lams_central/src/java/org/lamsfoundation/lams/webservice/RegisterServiceSoapBindingSkeleton.java (.../RegisterServiceSoapBindingSkeleton.java) (revision 206cb40e4252d7fb4c26b5468d2991d9a91812e5)
@@ -36,6 +36,9 @@
new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "firstName"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://schemas.xmlsoap.org/soap/encoding/", "string"), java.lang.String.class, false, false),
new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "lastName"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://schemas.xmlsoap.org/soap/encoding/", "string"), java.lang.String.class, false, false),
new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "email"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://schemas.xmlsoap.org/soap/encoding/", "string"), java.lang.String.class, false, false),
+ new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "serverId"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://schemas.xmlsoap.org/soap/encoding/", "string"), java.lang.String.class, false, false),
+ new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "datetime"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://schemas.xmlsoap.org/soap/encoding/", "string"), java.lang.String.class, false, false),
+ new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "hash"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://schemas.xmlsoap.org/soap/encoding/", "string"), java.lang.String.class, false, false),
};
_oper = new org.apache.axis.description.OperationDesc("createUser", _params, new javax.xml.namespace.QName("", "createUserReturn"));
_oper.setReturnType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "boolean"));
@@ -55,9 +58,9 @@
public RegisterServiceSoapBindingSkeleton(org.lamsfoundation.lams.webservice.Register impl) {
this.impl = impl;
}
- public boolean createUser(String username, String password, String firstName, String lastName, String email) throws java.rmi.RemoteException
+ public boolean createUser(String username, String password, String firstName, String lastName, String email, String serverId, String datetime, String hash) throws java.rmi.RemoteException
{
- boolean ret = impl.createUser(username, password, firstName, lastName, email);
+ boolean ret = impl.createUser(username, password, firstName, lastName, email, serverId, datetime, hash);
return ret;
}
Index: lams_central/web/WEB-INF/server-config.wsdd
===================================================================
diff -u -r7b248231b899b4c37f17fdd7bd3f5fa4daed3027 -r206cb40e4252d7fb4c26b5468d2991d9a91812e5
--- lams_central/web/WEB-INF/server-config.wsdd (.../server-config.wsdd) (revision 7b248231b899b4c37f17fdd7bd3f5fa4daed3027)
+++ lams_central/web/WEB-INF/server-config.wsdd (.../server-config.wsdd) (revision 206cb40e4252d7fb4c26b5468d2991d9a91812e5)
@@ -66,7 +66,7 @@
-
@@ -77,7 +77,7 @@
-
+ -->
Index: lams_common/src/java/org/lamsfoundation/lams/integration/service/IIntegrationService.java
===================================================================
diff -u -r1037e70251273c8c7ff4d9b62068e5fe1f07c87e -r206cb40e4252d7fb4c26b5468d2991d9a91812e5
--- lams_common/src/java/org/lamsfoundation/lams/integration/service/IIntegrationService.java (.../IIntegrationService.java) (revision 1037e70251273c8c7ff4d9b62068e5fe1f07c87e)
+++ lams_common/src/java/org/lamsfoundation/lams/integration/service/IIntegrationService.java (.../IIntegrationService.java) (revision 206cb40e4252d7fb4c26b5468d2991d9a91812e5)
@@ -50,4 +50,6 @@
List getAllExtServerOrgMaps();
void saveExtServerOrgMap(ExtServerOrgMap map);
+
+ String hash(ExtServerOrgMap serverMap, String extUsername, String timestamp);
}
Index: lams_common/src/java/org/lamsfoundation/lams/integration/service/IntegrationService.java
===================================================================
diff -u -r4a2728da7ea82a98b92d3a8b08feb6efa4023b7d -r206cb40e4252d7fb4c26b5468d2991d9a91812e5
--- lams_common/src/java/org/lamsfoundation/lams/integration/service/IntegrationService.java (.../IntegrationService.java) (revision 4a2728da7ea82a98b92d3a8b08feb6efa4023b7d)
+++ lams_common/src/java/org/lamsfoundation/lams/integration/service/IntegrationService.java (.../IntegrationService.java) (revision 206cb40e4252d7fb4c26b5468d2991d9a91812e5)
@@ -263,7 +263,7 @@
}
}
- private String hash(ExtServerOrgMap serverMap, String extUsername, String timestamp) {
+ public String hash(ExtServerOrgMap serverMap, String extUsername, String timestamp) {
String serverId = serverMap.getServerid();
String serverKey = serverMap.getServerkey();
String plaintext = timestamp.trim().toLowerCase()+extUsername.trim().toLowerCase()+serverId.trim().toLowerCase()+serverKey.trim().toLowerCase();