Index: lams_central/src/java/org/lamsfoundation/lams/web/LoginRequestServlet.java =================================================================== diff -u -r70a60f2862830ca6bd07e2b1252af3d79e4939af -r8d1f1d066f2b63b83bdd630609c527fec153675a --- lams_central/src/java/org/lamsfoundation/lams/web/LoginRequestServlet.java (.../LoginRequestServlet.java) (revision 70a60f2862830ca6bd07e2b1252af3d79e4939af) +++ lams_central/src/java/org/lamsfoundation/lams/web/LoginRequestServlet.java (.../LoginRequestServlet.java) (revision 8d1f1d066f2b63b83bdd630609c527fec153675a) @@ -120,6 +120,16 @@ response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Login Failed - login parameters missing"); return; } + + // LDEV-2196 preserve character encoding if necessary + if (request.getCharacterEncoding() == null) { + log.debug("request.getCharacterEncoding is empty, parsing username and courseName as 8859_1 to UTF-8..."); + extUsername = new String(extUsername.getBytes("8859_1"), "UTF-8"); + if (courseName != null) { + courseName = new String(courseName.getBytes("8859_1"), "UTF-8"); + } + } + ExtServerOrgMap serverMap = getService().getExtServerOrgMap(serverId); try { Index: lams_central/src/java/org/lamsfoundation/lams/webservice/xml/LearningDesignRepositoryServlet.java =================================================================== diff -u -r1ed58a0c7e540a027d04adadde8eb5b2a5b623fa -r8d1f1d066f2b63b83bdd630609c527fec153675a --- lams_central/src/java/org/lamsfoundation/lams/webservice/xml/LearningDesignRepositoryServlet.java (.../LearningDesignRepositoryServlet.java) (revision 1ed58a0c7e540a027d04adadde8eb5b2a5b623fa) +++ lams_central/src/java/org/lamsfoundation/lams/webservice/xml/LearningDesignRepositoryServlet.java (.../LearningDesignRepositoryServlet.java) (revision 8d1f1d066f2b63b83bdd630609c527fec153675a) @@ -272,7 +272,6 @@ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { - // get parameters String serverId = request.getParameter(CentralConstants.PARAM_SERVER_ID); String datetime = request.getParameter(CentralConstants.PARAM_DATE_TIME); @@ -288,13 +287,22 @@ String firstName = request.getParameter(LoginRequestDispatcher.PARAM_FIRST_NAME); String lastName = request.getParameter(LoginRequestDispatcher.PARAM_LAST_NAME); String email = request.getParameter(LoginRequestDispatcher.PARAM_EMAIL); - + if (serverId == null || datetime == null || hashValue == null || username == null || courseId == null || country == null || lang == null || modeStr == null) { String msg = "Parameters missing"; log.error(msg); response.sendError(response.SC_BAD_REQUEST, "Parameters missing"); } + + // LDEV-2196 preserve character encoding if necessary + if (request.getCharacterEncoding() == null) { + log.debug("request.getCharacterEncoding is empty, parsing username and courseName as 8859_1 to UTF-8..."); + username = new String(username.getBytes("8859_1"), "UTF-8"); + if (courseName != null) { + courseName = new String(courseName.getBytes("8859_1"), "UTF-8"); + } + } Integer mode = new Integer(modeStr); @@ -353,6 +361,10 @@ } } + + public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + doGet(request, response); + } public void exportLD(HttpServletRequest request, HttpServletResponse response) { Long learningDesignId = WebUtil.readLongParam(request, PARAM_LEARING_DESIGN_ID); Index: lams_central/src/java/org/lamsfoundation/lams/webservice/xml/LessonManagerServlet.java =================================================================== diff -u -r70a60f2862830ca6bd07e2b1252af3d79e4939af -r8d1f1d066f2b63b83bdd630609c527fec153675a --- lams_central/src/java/org/lamsfoundation/lams/webservice/xml/LessonManagerServlet.java (.../LessonManagerServlet.java) (revision 70a60f2862830ca6bd07e2b1252af3d79e4939af) +++ lams_central/src/java/org/lamsfoundation/lams/webservice/xml/LessonManagerServlet.java (.../LessonManagerServlet.java) (revision 8d1f1d066f2b63b83bdd630609c527fec153675a) @@ -279,12 +279,7 @@ * if an error occurred */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - - // TODO services should be implemented as POST - response.setContentType("text/html"); - PrintWriter out = response.getWriter(); - out.flush(); - out.close(); + doGet(request, response); } public Long startLesson(String serverId, String datetime, String hashValue, String username, long ldId,