Changeset 25128 for main/trunk
- Timestamp:
- 2012-02-21T16:26:17+13:00 (12 years ago)
- Location:
- main/trunk/greenstone3/src/java/org/greenstone/gsdl3
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/LibraryServlet.java
r25092 r25128 14 14 import javax.servlet.http.*; 15 15 16 import java.security.Principal;17 16 import java.util.Collection; 18 17 import java.util.Enumeration; … … 99 98 */ 100 99 protected Hashtable session_ids_table = new Hashtable(); 101 100 102 101 /** 103 102 * the maximum interval that the cached info remains in session_ids_table … … 722 721 request.login(username[0], password[0]); 723 722 } 724 725 if (request.getAuthType() != null)723 724 if (request.getAuthType() != null) 726 725 { 727 726 Element userInformation = this.doc.createElement("userInformation"); 728 727 xml_request.appendChild(userInformation); 729 728 userInformation.setAttribute("username", request.getUserPrincipal().getName()); 730 } 731 729 730 Element userInfoMessage = this.doc.createElement(GSXML.MESSAGE_ELEM); 731 Element userInfoRequest = GSXML.createBasicRequest(this.doc, GSXML.REQUEST_TYPE_SECURITY, "GetUserInformation", userContext); 732 userInfoMessage.appendChild(userInfoRequest); 733 734 Element paramList = this.doc.createElement(GSXML.PARAM_ELEM + GSXML.LIST_MODIFIER); 735 userInfoRequest.appendChild(paramList); 736 737 Element param = this.doc.createElement(GSXML.PARAM_ELEM); 738 param.setAttribute(GSXML.NAME_ATT, "username"); 739 param.setAttribute(GSXML.VALUE_ATT, request.getUserPrincipal().getName()); 740 paramList.appendChild(param); 741 742 Element userInformationResponse = (Element) GSXML.getChildByTagName(this.recept.process(userInfoMessage), GSXML.RESPONSE_ELEM); 743 Element responseParamList = (Element) GSXML.getChildByTagName(userInformationResponse, GSXML.PARAM_ELEM + GSXML.LIST_MODIFIER); 744 if (responseParamList == null) 745 { 746 logger.error("Can't get the groups for user " + request.getUserPrincipal().getName()); 747 } 748 749 HashMap responseParams = GSXML.extractParams(responseParamList, true); 750 String groups = (String) responseParams.get("groups"); 751 752 userInformation.setAttribute("groups", groups); 753 } 732 754 733 755 //If we are in a collection-related page then make sure this user is allowed to access it … … 771 793 Element paramList = this.doc.createElement(GSXML.PARAM_ELEM + GSXML.LIST_MODIFIER); 772 794 loginPageRequest.appendChild(paramList); 773 795 774 796 Element messageParam = this.doc.createElement(GSXML.PARAM_ELEM); 775 797 messageParam.setAttribute(GSXML.NAME_ATT, "loginMessage"); 776 if (request.getAuthType() == null)798 if (request.getAuthType() == null) 777 799 { 778 800 messageParam.setAttribute(GSXML.VALUE_ATT, "Please log in to view this page"); … … 780 802 else 781 803 { 782 messageParam.setAttribute(GSXML.VALUE_ATT, "You are not in the correct group to view this page ");804 messageParam.setAttribute(GSXML.VALUE_ATT, "You are not in the correct group to view this page, would you like to log in as a different user?"); 783 805 } 784 806 paramList.appendChild(messageParam); 785 807 786 808 Element urlParam = this.doc.createElement(GSXML.PARAM_ELEM); 787 809 urlParam.setAttribute(GSXML.NAME_ATT, "redirectURL"); -
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/action/Action.java
r24993 r25128 255 255 } 256 256 257 protected void addInterfaceOptions(Element elem) 258 { 259 Element documentOptionList = this.doc.createElement("interfaceOptions"); 260 for(Object key : this.config_params.keySet()) 261 { 262 Element option = this.doc.createElement("option"); 263 option.setAttribute(GSXML.NAME_ATT, (String)key); 264 option.setAttribute(GSXML.VALUE_ATT, this.config_params.get(key).toString()); 265 documentOptionList.appendChild(option); 266 } 267 elem.appendChild(elem.getOwnerDocument().importNode(documentOptionList, true)); 268 } 257 269 } -
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/action/BrowseAction.java
r24993 r25128 92 92 //append site metadata 93 93 addSiteMetadata(page_response, userContext); 94 addInterfaceOptions(page_response); 94 95 95 96 // if rt=d, then we are just displaying the service -
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/action/DocumentAction.java
r24993 r25128 147 147 //append site metadata 148 148 addSiteMetadata(page_response, userContext); 149 addInterfaceOptions(page_response); 149 150 150 151 // get the additional data needed for the page -
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/action/GS2BrowseAction.java
r24993 r25128 86 86 //append site metadata 87 87 addSiteMetadata(page_response, userContext); 88 addInterfaceOptions(page_response); 88 89 89 90 // if rt=d, then we are just displaying the service -
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/action/GeneralAction.java
r24993 r25128 2 2 3 3 import org.greenstone.gsdl3.util.*; 4 import org.greenstone.util.GlobalProperties; 4 5 // XML classes 6 import org.w3c.dom.Document; 5 7 import org.w3c.dom.Node; 6 8 import org.w3c.dom.Element; 9 import org.w3c.dom.NodeList; 7 10 11 import java.io.File; 8 12 import java.util.HashMap; 13 14 import javax.xml.parsers.DocumentBuilder; 15 import javax.xml.parsers.DocumentBuilderFactory; 16 import javax.xml.transform.Result; 17 import javax.xml.transform.Transformer; 18 import javax.xml.transform.TransformerFactory; 19 import javax.xml.transform.dom.DOMSource; 20 import javax.xml.transform.stream.StreamResult; 9 21 10 22 public class GeneralAction extends Action … … 31 43 Element cgi_param_list = (Element) GSXML.getChildByTagName(request, GSXML.PARAM_ELEM + GSXML.LIST_MODIFIER); 32 44 HashMap params = GSXML.extractParams(cgi_param_list, false); 45 46 if (params.get("configChangeName") != null && params.get("configChangeValue") != null) 47 { 48 String optionName = (String) params.get("configChangeName"); 49 String optionValue = (String) params.get("configChangeValue"); 50 51 changeConfig(optionName, optionValue); 52 } 53 33 54 String service_name = (String) params.get(GSParams.SERVICE); 34 55 String cluster_name = (String) params.get(GSParams.CLUSTER); … … 66 87 Element mr_query_message = this.doc.createElement(GSXML.MESSAGE_ELEM); 67 88 Element mr_query_request = GSXML.createBasicRequest(this.doc, GSXML.REQUEST_TYPE_PROCESS, to, userContext); 68 69 if (request_type.equals("s"))89 90 if (request_type.equals("s")) 70 91 { 71 92 mr_query_request.setAttribute(GSXML.TYPE_ATT, GSXML.REQUEST_TYPE_STATUS); … … 91 112 // just send the reponse as is 92 113 addSiteMetadata(result_response, userContext); 114 addInterfaceOptions(result_response); 93 115 return result_response; 94 116 } … … 107 129 mr_info_message.appendChild(mr_info_request); 108 130 Element mr_info_response = (Element) this.mr.process(mr_info_message); 109 131 110 132 String path = GSXML.RESPONSE_ELEM; 111 133 path = GSPath.appendLink(path, GSXML.SERVICE_ELEM); … … 118 140 119 141 addSiteMetadata(page_response, userContext); 120 142 addInterfaceOptions(page_response); 143 121 144 return result; 122 145 } 146 147 protected void changeConfig (String optionName, String optionValue) 148 { 149 if(this.config_params.get(optionName) != null) 150 { 151 this.config_params.put(optionName, optionValue); 152 153 File interfaceConfigFile = new File(GSFile.interfaceConfigFile(GSFile.interfaceHome(GlobalProperties.getGSDL3Home(), (String)this.config_params.get("interface_name")))); 154 155 Document interfaceXML = null; 156 try 157 { 158 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 159 DocumentBuilder db = dbf.newDocumentBuilder(); 160 interfaceXML = db.parse(interfaceConfigFile); 161 Element topElement = interfaceXML.getDocumentElement(); 162 Element optionListElem = (Element) GSXML.getChildByTagName(topElement, "optionList"); 123 163 164 NodeList optionList = optionListElem.getElementsByTagName("option"); 165 166 for(int i = 0; i < optionList.getLength(); i++) 167 { 168 Element currentOption = (Element)optionList.item(i); 169 if(currentOption.getAttribute(GSXML.NAME_ATT) != null && currentOption.getAttribute(GSXML.NAME_ATT).equals(optionName)) 170 { 171 currentOption.setAttribute(GSXML.VALUE_ATT, optionValue); 172 } 173 } 174 175 DOMSource source = new DOMSource(interfaceXML); 176 Result xmlresult = new StreamResult(interfaceConfigFile); 177 178 Transformer transformer = TransformerFactory.newInstance().newTransformer(); 179 transformer.transform(source, xmlresult); 180 } 181 catch(Exception ex) 182 { 183 ex.printStackTrace(); 184 } 185 } 186 else 187 { 188 logger.error("Could not set param \"" + optionName + "\" to \"" + optionValue + "\" because that option does not exist."); 189 } 190 } 124 191 } -
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/action/PageAction.java
r24993 r25128 17 17 public class PageAction extends Action 18 18 { 19 20 19 static Logger logger = Logger.getLogger(org.greenstone.gsdl3.action.PageAction.class.getName()); 21 20 … … 27 26 public Node process(Node message_node) 28 27 { 29 30 28 Element message = this.converter.nodeToElement(message_node); 31 29 … … 68 66 protected Element homePage(Element request) 69 67 { 70 71 68 UserContext userContext = new UserContext(request); 72 69 // first, get the message router info … … 130 127 protected Element aboutPage(Element request) 131 128 { 132 133 129 UserContext userContext = new UserContext(request); 134 130 // extract the params from the cgi-request, … … 143 139 Element response = this.doc.createElement(GSXML.RESPONSE_ELEM); 144 140 addSiteMetadata(response, userContext); 141 addInterfaceOptions(response); 145 142 return response; 146 143 } … … 200 197 //add the site metadata 201 198 addSiteMetadata(response, userContext); 199 addInterfaceOptions(response); 202 200 return response; 203 201 } … … 224 222 Element response = this.doc.createElement(GSXML.RESPONSE_ELEM); 225 223 addSiteMetadata(response, userContext); 224 addInterfaceOptions(response); 226 225 return response; 227 226 } … … 242 241 //add the site metadata 243 242 addSiteMetadata(response, userContext); 243 addInterfaceOptions(response); 244 244 245 245 return response; … … 249 249 protected boolean sendMultipleRequests(NodeList items, String path_prefix, String request_type, UserContext userContext) 250 250 { 251 252 251 // we will send all the requests in a single message 253 252 Element message = this.doc.createElement(GSXML.MESSAGE_ELEM); … … 321 320 return page_response; 322 321 } 323 324 322 } -
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/action/QueryAction.java
r24993 r25128 97 97 //append site metadata 98 98 addSiteMetadata(page_response, userContext); 99 addInterfaceOptions(page_response); 99 100 return page_response; 100 101 } … … 106 107 //append site metadata 107 108 addSiteMetadata(page_response, userContext); 109 addInterfaceOptions(page_response); 108 110 return page_response; 109 111 } … … 132 134 //append site metadata 133 135 addSiteMetadata(page_response, userContext); 136 addInterfaceOptions(page_response); 134 137 return page_response; 135 138 } … … 168 171 //append site metadata 169 172 addSiteMetadata(page_response, userContext); 173 addInterfaceOptions(page_response); 170 174 return page_response; 171 175 } … … 180 184 //append site metadata 181 185 addSiteMetadata(page_response, userContext); 186 addInterfaceOptions(page_response); 182 187 return page_response; 183 188 } … … 236 241 //append site metadata 237 242 addSiteMetadata(page_response, userContext); 243 addInterfaceOptions(page_response); 238 244 return page_response; 239 245 }
Note:
See TracChangeset
for help on using the changeset viewer.