X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fcom%2Findexdata%2Fmkjsf%2Fpazpar2%2FPz2ProxyBean.java;h=09e500a1ed80f2150ebe658d04ae7869d7a4ee15;hb=4e4ec6c08e54b7872b22495a54a7c2fb6439c4fd;hp=6e74ed03700456d3b57bcef28553bd9fb48d5634;hpb=28b5abb240eda1749703712a0ba19a5843f84ebc;p=mkjsf-moved-to-github.git diff --git a/src/main/java/com/indexdata/mkjsf/pazpar2/Pz2ProxyBean.java b/src/main/java/com/indexdata/mkjsf/pazpar2/Pz2ProxyBean.java index 6e74ed0..09e500a 100644 --- a/src/main/java/com/indexdata/mkjsf/pazpar2/Pz2ProxyBean.java +++ b/src/main/java/com/indexdata/mkjsf/pazpar2/Pz2ProxyBean.java @@ -2,6 +2,8 @@ package com.indexdata.mkjsf.pazpar2; import java.io.IOException; import java.io.UnsupportedEncodingException; +import java.util.ArrayList; +import java.util.List; import javax.annotation.PostConstruct; import javax.enterprise.context.SessionScoped; @@ -24,7 +26,6 @@ public class Pz2ProxyBean extends Pz2Bean implements ServiceProxyInterface { private static Logger logger = Logger.getLogger(Pz2ProxyBean.class); private String initDocFileName = ""; private String initDocResponse = ""; - private String serviceProxyUrl = ""; @Inject ConfigurationReader configurator; @Inject ServiceProxyUser user; @@ -40,8 +41,7 @@ public class Pz2ProxyBean extends Pz2Bean implements ServiceProxyInterface { logger.info("Using [" + Utils.objectId(searchClient) + "] configured by [" + Utils.objectId(configurator) + "]" ); configureClient(searchClient,configurator); - stateMgr.addStateListener(this); - serviceProxyUrl = searchClient.getConfiguration().get(ServiceProxyClient.SERVICE_PROXY_URL); + stateMgr.addStateListener(this); } else { logger.debug("Pz2ProxyBean:postConstruct: searchClient already instantiated " + "during construction of parent object Pz2Bean."); @@ -70,22 +70,35 @@ public class Pz2ProxyBean extends Pz2Bean implements ServiceProxyInterface { } public void ipAuthenticate (ServiceProxyUser user) { - if (!user.isAuthenticated()) { + if (!user.isIpAuthenticated()) { + if (user.isAuthenticated()) { + user.clear(); + } ((ServiceProxyClient)searchClient).ipAuthenticate(user); } } @Override public void setServiceProxyUrl(String url) { - logger.info("Setting Service Proxy url: " + url); - serviceProxyUrl = url; - pzreq.getRecord().removeParametersInState(); - pzreq.getSearch().removeParametersInState(); - pzresp.reset(); + logger.info("Setting Service Proxy url: " + url); + if (url!=null & !url.equals(((ServiceProxyClient)searchClient).getServiceProxyUrl())) { + pzreq.getRecord().removeParametersInState(); + pzreq.getSearch().removeParametersInState(); + pzresp.reset(); + user.clear(); + ((ServiceProxyClient)searchClient).setServiceProxyUrl(url); + } } public String getServiceProxyUrl() { - return serviceProxyUrl; + return ((ServiceProxyClient)searchClient).getServiceProxyUrl(); + } + + public List getServiceProxyUrls() { + List urls = new ArrayList(); + urls.add(""); + urls.addAll(((ServiceProxyClient)searchClient).getServiceProxyUrls()); + return urls; } public String getInitDocPath () { @@ -105,7 +118,7 @@ public class Pz2ProxyBean extends Pz2Bean implements ServiceProxyInterface { @Override public String postInit() throws UnsupportedEncodingException, IOException { - String initDocPath = ((ServiceProxyClient)searchClient).getInitDocPaths()[0]; + String initDocPath = ((ServiceProxyClient)searchClient).getInitDocPaths().get(0); logger.info("Paths: " + ((ServiceProxyClient)searchClient).getInitDocPaths()); logger.info("Path: " + initDocPath); pzresp.reset(); @@ -115,25 +128,16 @@ public class Pz2ProxyBean extends Pz2Bean implements ServiceProxyInterface { } @Override - public String postInit(byte[] initDoc) throws UnsupportedEncodingException, IOException { + public String postInit(byte[] initDoc, boolean includeDebug) throws UnsupportedEncodingException, IOException { pzresp.reset(); - byte[] response = ((ServiceProxyClient)searchClient).postInitDoc(initDoc); + byte[] response = ((ServiceProxyClient)searchClient).postInitDoc(initDoc,includeDebug); initDocResponse = new String(response,"UTF-8"); return initDocResponse; } - @Override public String getInitResponse() { return initDocResponse; } - public void setAceFilter(String filterExpression) { - //setCommandParameter("record",new CommandParameter("acefilter","=",filterExpression)); - } - - public String getAceFilter () { - return null; - // return getCommandParameterValue("record","acefilter",""); - } }