Index: lams_admin/conf/language/lams/ApplicationResources_en_AU.properties
===================================================================
diff -u -r298b5600c99cf71c588d5ae57c48a1c66500e3b5 -r63bee30ea13fab1267c0744f26929af1736a1cf9
--- lams_admin/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 298b5600c99cf71c588d5ae57c48a1c66500e3b5)
+++ lams_admin/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 63bee30ea13fab1267c0744f26929af1736a1cf9)
@@ -634,5 +634,6 @@
outcome.authoring.existing.none =none
sysadmin.maintain.session.name =Name
+sysadmin.alternative.user.id.name =Use alternative parameter name "lis_person_sourcedid" to get user id
#======= End labels: Exported 627 labels for en AU =====
Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/form/LtiConsumerForm.java
===================================================================
diff -u -rb77e07f34f5d86b1f69b0d10c08ed78b6acdb955 -r63bee30ea13fab1267c0744f26929af1736a1cf9
--- lams_admin/src/java/org/lamsfoundation/lams/admin/web/form/LtiConsumerForm.java (.../LtiConsumerForm.java) (revision b77e07f34f5d86b1f69b0d10c08ed78b6acdb955)
+++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/form/LtiConsumerForm.java (.../LtiConsumerForm.java) (revision 63bee30ea13fab1267c0744f26929af1736a1cf9)
@@ -30,6 +30,8 @@
public class LtiConsumerForm extends ExtServerCommonForm {
private String ltiToolConsumerMonitorRoles;
+
+ private Boolean useAlternativeUseridParameterName;
public String getLtiToolConsumerMonitorRoles() {
return ltiToolConsumerMonitorRoles;
@@ -38,5 +40,13 @@
public void setLtiToolConsumerMonitorRoles(String ltiToolConsumerMonitorRoles) {
this.ltiToolConsumerMonitorRoles = ltiToolConsumerMonitorRoles;
}
+
+ public Boolean isUseAlternativeUseridParameterName() {
+ return useAlternativeUseridParameterName;
+ }
+ public void setUseAlternativeUseridParameterName(Boolean useAlternativeUseridParameterName) {
+ this.useAlternativeUseridParameterName = useAlternativeUseridParameterName;
+ }
+
}
Index: lams_admin/web/integration/ltiConsumer.jsp
===================================================================
diff -u -rccc788f07597ad3fde52adb6ff13e964b552c35d -r63bee30ea13fab1267c0744f26929af1736a1cf9
--- lams_admin/web/integration/ltiConsumer.jsp (.../ltiConsumer.jsp) (revision ccc788f07597ad3fde52adb6ff13e964b552c35d)
+++ lams_admin/web/integration/ltiConsumer.jsp (.../ltiConsumer.jsp) (revision 63bee30ea13fab1267c0744f26929af1736a1cf9)
@@ -92,7 +92,6 @@
-
: |
@@ -111,6 +110,12 @@
|
+
+ : |
+
+
+ |
+
<%@ include file="extLessonForm.jsp"%>
Index: lams_central/src/java/org/lamsfoundation/lams/web/LoginRequestLtiServlet.java
===================================================================
diff -u -rc975a1230b65f2245c5c77ba413afe97a2816df9 -r63bee30ea13fab1267c0744f26929af1736a1cf9
--- lams_central/src/java/org/lamsfoundation/lams/web/LoginRequestLtiServlet.java (.../LoginRequestLtiServlet.java) (revision c975a1230b65f2245c5c77ba413afe97a2816df9)
+++ lams_central/src/java/org/lamsfoundation/lams/web/LoginRequestLtiServlet.java (.../LoginRequestLtiServlet.java) (revision 63bee30ea13fab1267c0744f26929af1736a1cf9)
@@ -78,8 +78,15 @@
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- String extUsername = request.getParameter(BasicLTIConstants.USER_ID);
+ String consumerKey = request.getParameter(LtiUtils.OAUTH_CONSUMER_KEY);
+ ExtServer extServer = integrationService.getExtServer(consumerKey);
+ //get user id as "user_id" parameter, or as lis_person_sourcedid (if according option is ON for this LTI server)
+ String lisPersonSourcedid = request.getParameter(BasicLTIConstants.LIS_PERSON_SOURCEDID);
+ String extUsername = extServer.isUseAlternativeUseridParameterName()
+ && StringUtils.isNotBlank(lisPersonSourcedid) ? lisPersonSourcedid
+ : request.getParameter(BasicLTIConstants.USER_ID);
String roles = request.getParameter(BasicLTIConstants.ROLES);
+
// implicit login params
String firstName = request.getParameter(BasicLTIConstants.LIS_PERSON_NAME_GIVEN);
String lastName = request.getParameter(BasicLTIConstants.LIS_PERSON_NAME_FAMILY);
@@ -88,8 +95,7 @@
String locale = request.getParameter(BasicLTIConstants.LAUNCH_PRESENTATION_LOCALE);
String countryIsoCode = LoginRequestLtiServlet.getCountry(locale);
String langIsoCode = LoginRequestLtiServlet.getLanguage(locale);
-
- String consumerKey = request.getParameter(LtiUtils.OAUTH_CONSUMER_KEY);
+
String resourceLinkId = request.getParameter(BasicLTIConstants.RESOURCE_LINK_ID);
String contextId = request.getParameter(BasicLTIConstants.CONTEXT_ID);
String contextLabel = request.getParameter(BasicLTIConstants.CONTEXT_LABEL);
@@ -100,7 +106,6 @@
}
//verify whether request was correctly signed by OAuth
- ExtServer extServer = integrationService.getExtServer(consumerKey);
String secret = extServer.getServerkey();// retrieve corresponding secret for key from db
LtiVerificationResult ltiResult = null;
try {
Index: lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch20191009.sql
===================================================================
diff -u
--- lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch20191009.sql (revision 0)
+++ lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch20191009.sql (revision 63bee30ea13fab1267c0744f26929af1736a1cf9)
@@ -0,0 +1,14 @@
+-- Turn off autocommit, so nothing is committed if there is an error
+SET AUTOCOMMIT = 0;
+SET FOREIGN_KEY_CHECKS=0;
+----------------------Put all sql statements below here-------------------------
+
+-- LDEV-4876 Ability for LTI servers to get userId from another request parameter name
+ALTER TABLE lams_ext_server_org_map ADD COLUMN `use_alternative_user_id_parameter_name` tinyint(1) DEFAULT '0';
+
+----------------------Put all sql statements above here-------------------------
+
+-- If there were no errors, commit and restore autocommit to on
+COMMIT;
+SET AUTOCOMMIT = 1;
+SET FOREIGN_KEY_CHECKS=1;
\ No newline at end of file
Index: lams_common/src/java/org/lamsfoundation/lams/integration/ExtServer.java
===================================================================
diff -u -r6b58638c62c43fc5b43bc67402d77b347311bc16 -r63bee30ea13fab1267c0744f26929af1736a1cf9
--- lams_common/src/java/org/lamsfoundation/lams/integration/ExtServer.java (.../ExtServer.java) (revision 6b58638c62c43fc5b43bc67402d77b347311bc16)
+++ lams_common/src/java/org/lamsfoundation/lams/integration/ExtServer.java (.../ExtServer.java) (revision 63bee30ea13fab1267c0744f26929af1736a1cf9)
@@ -115,6 +115,9 @@
*/
@Column(name = "lti_consumer_monitor_roles")
private String ltiToolConsumerMonitorRoles;
+
+ @Column(name = "use_alternative_user_id_parameter_name")
+ private Boolean useAlternativeUseridParameterName;
public ExtServer() {
timeToLiveLoginRequest = 80;
@@ -333,4 +336,12 @@
public void setGradebookOnComplete(Boolean gradebookOnComplete) {
this.gradebookOnComplete = gradebookOnComplete;
}
+
+ public Boolean isUseAlternativeUseridParameterName() {
+ return useAlternativeUseridParameterName;
+ }
+
+ public void setUseAlternativeUseridParameterName(Boolean useAlternativeUseridParameterName) {
+ this.useAlternativeUseridParameterName = useAlternativeUseridParameterName;
+ }
}
\ No newline at end of file