X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fcom%2Findexdata%2Fmkjsf%2Fpazpar2%2FServiceProxyExtensions.java;h=3c0da1094046d55d254da45d6fcf8e0725c31e4b;hb=056883036f0be0d1bf0a06d0f5842d382239adf9;hp=0ee282552ee8981e62318d86021e9396aea62be3;hpb=bcb39bd9bde8071ac3a6741ce5d51ed9e763ba9c;p=mkjsf-moved-to-github.git diff --git a/src/main/java/com/indexdata/mkjsf/pazpar2/ServiceProxyExtensions.java b/src/main/java/com/indexdata/mkjsf/pazpar2/ServiceProxyExtensions.java index 0ee2825..3c0da10 100644 --- a/src/main/java/com/indexdata/mkjsf/pazpar2/ServiceProxyExtensions.java +++ b/src/main/java/com/indexdata/mkjsf/pazpar2/ServiceProxyExtensions.java @@ -16,10 +16,11 @@ import com.indexdata.mkjsf.pazpar2.commands.CommandParameter; import com.indexdata.mkjsf.pazpar2.commands.Pazpar2Commands; import com.indexdata.mkjsf.pazpar2.commands.sp.AuthCommand; import com.indexdata.mkjsf.pazpar2.commands.sp.InitDocUpload; -import com.indexdata.mkjsf.pazpar2.data.AuthResponse; import com.indexdata.mkjsf.pazpar2.data.ResponseDataObject; import com.indexdata.mkjsf.pazpar2.data.ResponseParser; import com.indexdata.mkjsf.pazpar2.data.Responses; +import com.indexdata.mkjsf.pazpar2.data.sp.AuthResponse; +import com.indexdata.mkjsf.pazpar2.data.sp.CategoriesResponse; import com.indexdata.mkjsf.pazpar2.sp.auth.ServiceProxyUser; import com.indexdata.mkjsf.utils.Utils; @@ -45,18 +46,18 @@ public class ServiceProxyExtensions implements ServiceProxyInterface, Serializab //stateMgr.addStateListener(this); } - /* + public void login(String un, String pw) { - if (user.isAuthenticated() && user.getName().equals(un) && pz2.spClient.checkAuthentication(user)) { + if (user.isAuthenticated() && user.getName().equals(un) /* && pz2.spClient.checkAuthentication(user) */) { logger.info("Repeat request from UI to authenticate user. Auth verified for given user name so skipping log-in."); } else { logger.info("doing un/pw login"); user.setName(un); user.setPassword(pw); - login("dummy"); + login(""); } } - */ + @Override @@ -69,7 +70,9 @@ public class ServiceProxyExtensions implements ServiceProxyInterface, Serializab new CommandParameter("username","=",user.getName()), new CommandParameter("password","=",user.getPassword())); ClientCommandResponse commandResponse = pz2.getSpClient().send(auth); - AuthResponse responseObject = (AuthResponse) (ResponseParser.getParser().getDataObject(commandResponse.getResponseString())); + String renamedResponse = renameResponseElement(commandResponse.getResponseString(), "auth"); + commandResponse.setResponseToParse(renamedResponse); + AuthResponse responseObject = (AuthResponse) ResponseParser.getParser().getDataObject(commandResponse); if (ResponseParser.docTypes.contains(responseObject.getType())) { pzresp.put(auth.getCommandName(), responseObject); } @@ -93,8 +96,10 @@ public class ServiceProxyExtensions implements ServiceProxyInterface, Serializab pzresp.resetAllSessionData(); AuthCommand auth = pzreq.getSp().getAuth(); auth.setParameterInState(new CommandParameter("action","=","ipAuth")); - ClientCommandResponse commandResponse = pz2.getSpClient().send(auth); - AuthResponse responseObject = (AuthResponse) (ResponseParser.getParser().getDataObject(commandResponse.getResponseString())); + ClientCommandResponse commandResponse = pz2.getSpClient().send(auth); + String renamedResponse = renameResponseElement(commandResponse.getResponseString(), "auth"); + commandResponse.setResponseToParse(renamedResponse); + ResponseDataObject responseObject = ResponseParser.getParser().getDataObject(commandResponse); if (ResponseParser.docTypes.contains(responseObject.getType())) { pzresp.put(auth.getCommandName(), responseObject); } @@ -107,6 +112,12 @@ public class ServiceProxyExtensions implements ServiceProxyInterface, Serializab } } } + + private String renameResponseElement(String responseString, String newName) { + responseString = responseString.replace("", "<" + newName + ">"); + responseString = responseString.replace("", ""); + return responseString; + } public String getInitDocPath () { return pz2.getSpClient().getConfiguration().get("INIT_DOC_PATH"); @@ -156,8 +167,8 @@ public class ServiceProxyExtensions implements ServiceProxyInterface, Serializab } public void submitInitDoc () throws IOException { - HttpResponseWrapper response = initDocUpload.submit(); - ResponseDataObject responseObject = ResponseParser.getParser().getDataObject(response.getResponseString()); + ClientCommandResponse response = (ClientCommandResponse) initDocUpload.submit(); + ResponseDataObject responseObject = ResponseParser.getParser().getDataObject(response); logger.info("Putting init response to : " + Utils.objectId(pzresp)); pzresp.put("init", responseObject); } @@ -171,12 +182,30 @@ public class ServiceProxyExtensions implements ServiceProxyInterface, Serializab return initDocUpload.getIncludeDebug(); } - // TODO: Remove when possible + // TODO: Remove when obsolete public InitDocUpload getInitDocUpload () { return initDocUpload; } - + public CategoriesResponse getCategories () { + if (pz2.isServiceProxyService()) { + ResponseDataObject response = pz2.doCommand("categories"); + if (response.hasApplicationError()) { + logger.debug(response.getXml()); + return new CategoriesResponse(); + } else { + try { + return (CategoriesResponse) response; + } catch (Exception e) { + e.printStackTrace(); + logger.debug(response.getXml()); + return new CategoriesResponse(); + } + } + } else { + return new CategoriesResponse(); + } + } }