01: //=============================================================================
02: //=== Copyright (C) 2001-2007 Food and Agriculture Organization of the
03: //=== United Nations (FAO-UN), United Nations World Food Programme (WFP)
04: //=== and United Nations Environment Programme (UNEP)
05: //===
06: //=== This program is free software; you can redistribute it and/or modify
07: //=== it under the terms of the GNU General Public License as published by
08: //=== the Free Software Foundation; either version 2 of the License, or (at
09: //=== your option) any later version.
10: //===
11: //=== This program is distributed in the hope that it will be useful, but
12: //=== WITHOUT ANY WARRANTY; without even the implied warranty of
13: //=== MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14: //=== General Public License for more details.
15: //===
16: //=== You should have received a copy of the GNU General Public License
17: //=== along with this program; if not, write to the Free Software
18: //=== Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19: //===
20: //=== Contact: Jeroen Ticheler - FAO - Viale delle Terme di Caracalla 2,
21: //=== Rome - Italy. email: geonetwork@osgeo.org
22: //==============================================================================
23:
24: package org.fao.gast.lib;
25:
26: import jeeves.utils.Xml;
27: import jeeves.utils.XmlRequest;
28: import org.fao.gast.app.App;
29: import org.fao.gast.app.Configuration;
30: import org.fao.geonet.constants.Geonet;
31: import org.jdom.Element;
32:
33: //=============================================================================
34:
35: public class ServiceLib {
36: //---------------------------------------------------------------------------
37: //---
38: //--- API methods
39: //---
40: //---------------------------------------------------------------------------
41:
42: public void login(XmlRequest req) throws Exception {
43: Configuration cfg = App.config;
44:
45: req.setAddress("/" + cfg.getServlet() + "/srv/en/"
46: + Geonet.Service.XML_LOGIN);
47: req.clearParams();
48: req.addParam("username", cfg.getUsername());
49: req.addParam("password", cfg.getPassword());
50:
51: Element response = req.execute();
52: Lib.service.checkError(response);
53: }
54:
55: //---------------------------------------------------------------------------
56:
57: public void logout(XmlRequest req) {
58: req.clearParams();
59: req.setAddress("/" + App.config.getServlet() + "/srv/en/"
60: + Geonet.Service.XML_LOGOUT);
61: }
62:
63: //---------------------------------------------------------------------------
64:
65: public void checkError(Element response) throws Exception {
66: if (!response.getName().equals("error"))
67: return;
68:
69: System.out.println("*** Error is:\n" + Xml.getString(response));
70:
71: String id = response.getAttributeValue("id");
72: String msg = response.getChildText("message");
73:
74: if (id.equals("service-not-allowed"))
75: throw new Exception("You need to authenticate");
76:
77: if (id.equals("user-login"))
78: throw new Exception("Invalid username/password");
79:
80: throw new Exception(msg);
81: }
82: }
83:
84: //=============================================================================
|