X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fcom%2Findexdata%2Fmkjsf%2Fpazpar2%2FPz2ProxyBean.java;h=7bc014573dcaa45664b62073a8a116de7559e25e;hb=0d2b106b50b9a8502ab082c6104443fce5401728;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..7bc0145 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; @@ -13,6 +15,7 @@ import org.apache.log4j.Logger; import com.indexdata.mkjsf.config.ConfigurationReader; import com.indexdata.mkjsf.pazpar2.sp.ServiceProxyClient; +import com.indexdata.mkjsf.pazpar2.sp.ServiceProxyCommandResponse; import com.indexdata.mkjsf.pazpar2.sp.ServiceProxyInterface; import com.indexdata.mkjsf.pazpar2.sp.auth.ServiceProxyUser; import com.indexdata.mkjsf.utils.Utils; @@ -24,7 +27,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 +42,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 +71,42 @@ public class Pz2ProxyBean extends Pz2Bean implements ServiceProxyInterface { } public void ipAuthenticate (ServiceProxyUser user) { - if (!user.isAuthenticated()) { + if (!user.isIpAuthenticated()) { + if (user.isAuthenticated()) { + user.clear(); + } + pzreq.getRecord().removeParametersInState(); + pzreq.getSearch().removeParametersInState(); + pzresp.reset(); ((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 boolean getServiceProxyUrlIsDefined() { + return ((ServiceProxyClient)searchClient).getServiceProxyUrl().length()>0; + } + + public List getServiceProxyUrls() { + List urls = new ArrayList(); + urls.add(""); + urls.addAll(((ServiceProxyClient)searchClient).getServiceProxyUrls()); + return urls; } public String getInitDocPath () { @@ -104,36 +125,25 @@ public class Pz2ProxyBean extends Pz2Bean implements ServiceProxyInterface { } @Override - public String postInit() throws UnsupportedEncodingException, IOException { - String initDocPath = ((ServiceProxyClient)searchClient).getInitDocPaths()[0]; + public ServiceProxyCommandResponse postInit() throws UnsupportedEncodingException, IOException { + String initDocPath = ((ServiceProxyClient)searchClient).getInitDocPaths().get(0); logger.info("Paths: " + ((ServiceProxyClient)searchClient).getInitDocPaths()); logger.info("Path: " + initDocPath); pzresp.reset(); - byte[] response = ((ServiceProxyClient)searchClient).postInitDoc(initDocPath + getInitFileName()); - initDocResponse = new String(response,"UTF-8"); - return initDocResponse; + ServiceProxyCommandResponse response = ((ServiceProxyClient)searchClient).postInitDoc(initDocPath + getInitFileName()); + return response; } @Override - public String postInit(byte[] initDoc) throws UnsupportedEncodingException, IOException { + public ServiceProxyCommandResponse postInit(byte[] initDoc, boolean includeDebug) throws UnsupportedEncodingException, IOException { pzresp.reset(); - byte[] response = ((ServiceProxyClient)searchClient).postInitDoc(initDoc); - initDocResponse = new String(response,"UTF-8"); - return initDocResponse; + ServiceProxyCommandResponse response = ((ServiceProxyClient)searchClient).postInitDoc(initDoc,includeDebug); + return response; } - @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",""); - } }