Changeset 34086
- Timestamp:
- 2020-03-15T17:47:35+13:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/LibraryServlet.java
r33770 r34086 465 465 { 466 466 baseURL = requestedURL.substring(0, requestedURL.indexOf(library_name)); 467 468 int protocol_boundary_pos = baseURL.indexOf("://"); 469 if (protocol_boundary_pos>=1) { 470 baseURL = baseURL.substring(protocol_boundary_pos+1); // change things like http:// or https:// to // 471 } 472 467 473 } 468 474 String fullURL; … … 917 923 } 918 924 919 private void generateLoginPage(String query_string, String error_message, UserContext userContext, PrintWriter out, String baseURL, String output) {925 private void generateLoginPage(String redirect_url_string, String error_message, UserContext userContext, PrintWriter out, String baseURL, String output) { 920 926 921 927 Document loginPageDoc = XMLConverter.newDOM(); … … 939 945 Element urlParam = loginPageDoc.createElement(GSXML.PARAM_ELEM); 940 946 urlParam.setAttribute(GSXML.NAME_ATT, REDIRECT_URL_PARAM); 941 urlParam.setAttribute(GSXML.VALUE_ATT, library_name + query_string); 947 948 if (redirect_url_string.matches("^[a-z]+://.*$")) { 949 int protocol_boundary_pos = redirect_url_string.indexOf("://"); 950 redirect_url_string = redirect_url_string.substring(protocol_boundary_pos+1); // change things like http:// or https:// to // 951 } 952 953 urlParam.setAttribute(GSXML.VALUE_ATT, redirect_url_string); 942 954 paramList.appendChild(urlParam); 943 955 944 956 Node loginPageResponse = this.recept.process(loginPageMessage); 945 out.println(XMLConverter.getPrettyString(loginPageResponse)); 946 957 out.println(XMLConverter.getPrettyString(loginPageResponse)); 947 958 } 948 959 … … 991 1002 { 992 1003 //The user entered in either the wrong username or the wrong password 993 String query_string = "";994 if (request.getQueryString() != null) 1004 String redirect_url_string = library_name; 1005 if (request.getQueryString() != null) // && request.getQueryString().length() > 0) 995 1006 { 996 query_string= "?" + request.getQueryString().replace("&", "&");1007 redirect_url_string += "?" + request.getQueryString().replace("&", "&"); 997 1008 } 998 999 generateLoginPage( query_string, getTextString("auth.error.un_or_pw_err", lang), userContext, out, baseURL, output);1009 1010 generateLoginPage(redirect_url_string, getTextString("auth.error.un_or_pw_err", lang), userContext, out, baseURL, output); 1000 1011 return false; 1001 1012 } … … 1096 1107 error_message = getTextString("auth.error.incorrect_login", lang); 1097 1108 } 1098 String query_string = "";1109 String redirect_url_string = request.getRequestURL().toString(); 1099 1110 if (request.getQueryString() != null && request.getQueryString().length() > 0) 1100 1111 { 1101 query_string = request.getRequestURL() +"?" + request.getQueryString().replace("&", "&");1112 redirect_url_string += "?" + request.getQueryString().replace("&", "&"); 1102 1113 } 1103 else 1104 { 1105 query_string = request.getRequestURL().toString(); 1106 } 1107 generateLoginPage(query_string, error_message, userContext, out, baseURL, output); 1114 1115 generateLoginPage(redirect_url_string, error_message, userContext, out, baseURL, output); 1108 1116 return false; 1109 1117 }
Note:
See TracChangeset
for help on using the changeset viewer.