import com.indexdata.mkjsf.pazpar2.commands.Pazpar2Commands;\r
import com.indexdata.mkjsf.pazpar2.commands.sp.AuthCommand;\r
import com.indexdata.mkjsf.pazpar2.commands.sp.InitDocUpload;\r
-import com.indexdata.mkjsf.pazpar2.data.AuthResponse;\r
import com.indexdata.mkjsf.pazpar2.data.ResponseDataObject;\r
import com.indexdata.mkjsf.pazpar2.data.ResponseParser;\r
import com.indexdata.mkjsf.pazpar2.data.Responses;\r
import com.indexdata.mkjsf.pazpar2.data.sp.CategoriesResponse;\r
-import com.indexdata.mkjsf.pazpar2.sp.auth.ServiceProxyUser;\r
+import com.indexdata.mkjsf.pazpar2.data.sp.SpResponseDataObject;\r
import com.indexdata.mkjsf.utils.Utils;\r
\r
@Named("pz2x") @SessionScoped\r
private InitDocUpload initDocUpload; \r
\r
@Inject ConfigurationReader configurator; \r
- @Inject ServiceProxyUser user; \r
@Inject Pz2Bean pz2;\r
@Inject Pazpar2Commands pzreq;\r
@Inject Responses pzresp;\r
//stateMgr.addStateListener(this);\r
}\r
\r
-\r
- public void login(String un, String pw) {\r
- if (user.isAuthenticated() && user.getName().equals(un) /* && pz2.spClient.checkAuthentication(user) */) {\r
- logger.info("Repeat request from UI to authenticate user. Auth verified for given user name so skipping log-in.");\r
- } else {\r
- logger.info("doing un/pw login");\r
- user.setName(un);\r
- user.setPassword(pw);\r
- login("");\r
- }\r
- }\r
-\r
-\r
- \r
- @Override \r
- public String login(String navigateTo) {\r
- logger.info("doing login by " + user + " using " + pz2 + " and client " + pz2.getSpClient());\r
+ public void authenticate() {\r
pz2.resetSearchAndRecordCommands();\r
- pzresp.resetAllSessionData();\r
- AuthCommand auth = pzreq.getSp().getAuth(); \r
- auth.setParametersInState(new CommandParameter("action","=","login"),\r
- new CommandParameter("username","=",user.getName()),\r
- new CommandParameter("password","=",user.getPassword()));\r
- ClientCommandResponse commandResponse = pz2.getSpClient().send(auth);\r
+ pzresp.getSp().resetAuthAndBeyond(true);\r
+ AuthCommand auth = pzreq.getSp().getAuth(); \r
+ ClientCommandResponse commandResponse = pz2.getSpClient().send(auth); \r
String renamedResponse = renameResponseElement(commandResponse.getResponseString(), "auth");\r
commandResponse.setResponseToParse(renamedResponse);\r
- AuthResponse responseObject = (AuthResponse) ResponseParser.getParser().getDataObject(commandResponse);\r
+ ResponseDataObject responseObject = ResponseParser.getParser().getDataObject(commandResponse);\r
if (ResponseParser.docTypes.contains(responseObject.getType())) {\r
pzresp.put(auth.getCommandName(), responseObject);\r
}\r
String responseStr = commandResponse.getResponseString();\r
- logger.info(responseStr); \r
- if (responseStr.contains("FAIL")) {\r
- user.credentialsAuthenticationSucceeded(false); \r
- } else {\r
- user.credentialsAuthenticationSucceeded(true); \r
- } \r
- return navigateTo;\r
+ logger.info(responseStr); \r
}\r
\r
+ public void login(String un, String pw) { \r
+ login(un,pw,"");\r
+ }\r
\r
- public void ipAuthenticate (ServiceProxyUser user) {\r
- if (!user.isIpAuthenticated()) {\r
- if (user.isAuthenticated()) {\r
- user.clear();\r
- }\r
- pz2.resetSearchAndRecordCommands();\r
- pzresp.resetAllSessionData();\r
- AuthCommand auth = pzreq.getSp().getAuth(); \r
- auth.setParameterInState(new CommandParameter("action","=","ipAuth"));\r
- ClientCommandResponse commandResponse = pz2.getSpClient().send(auth); \r
- String renamedResponse = renameResponseElement(commandResponse.getResponseString(), "auth");\r
- commandResponse.setResponseToParse(renamedResponse);\r
- ResponseDataObject responseObject = ResponseParser.getParser().getDataObject(commandResponse);\r
- if (ResponseParser.docTypes.contains(responseObject.getType())) {\r
- pzresp.put(auth.getCommandName(), responseObject);\r
- }\r
- String responseStr = commandResponse.getResponseString();\r
- logger.info(responseStr); \r
- if (responseStr.contains("FAIL")) {\r
- user.credentialsAuthenticationSucceeded(false); \r
- } else {\r
- user.credentialsAuthenticationSucceeded(true); \r
- } \r
- }\r
+ public void login(String un, String pw, String navigateTo) { \r
+ pzreq.getSp().getAuth().setUsername(un);\r
+ pzreq.getSp().getAuth().setPassword(pw);\r
+ login("");\r
+ } \r
+ \r
+ @Override \r
+ public String login(String navigateTo) {\r
+ AuthCommand auth = pzreq.getSp().getAuth(); \r
+ auth.setParameterInState(new CommandParameter("action","=","login"));\r
+ authenticate();\r
+ return navigateTo;\r
+ }\r
+ \r
+ public void ipAuthenticate () { \r
+ AuthCommand auth = pzreq.getSp().getAuth(); \r
+ auth.setParameterInState(new CommandParameter("action","=","ipAuth"));\r
+ authenticate();\r
}\r
\r
private String renameResponseElement(String responseString, String newName) {\r
public ClientCommandResponse postInit() throws UnsupportedEncodingException, IOException { \r
String initDocPath = pz2.getSpClient().getInitDocPaths().get(0);\r
logger.info("Paths: " + pz2.getSpClient().getInitDocPaths());\r
- logger.info("Path: " + initDocPath);\r
+ logger.info("Path: " + initDocPath); \r
pz2.resetSearchAndRecordCommands();\r
- pzresp.resetAllSessionData();\r
+ pzresp.getSp().resetAuthAndBeyond(true);\r
ClientCommandResponse response = pz2.getSpClient().postInitDoc(initDocPath + getInitFileName()); \r
return response;\r
}\r
@Override\r
public HttpResponseWrapper postInit(byte[] initDoc, boolean includeDebug) throws UnsupportedEncodingException, IOException { \r
pz2.resetSearchAndRecordCommands();\r
- pzresp.resetAllSessionData();\r
+ pzresp.getSp().resetAuthAndBeyond(true);\r
HttpResponseWrapper response = pz2.getSpClient().postInitDoc(initDoc,includeDebug); \r
return response;\r
}\r
return initDocUpload.getIncludeDebug();\r
}\r
\r
- // TODO: Remove when possible\r
+ // TODO: Remove when obsolete\r
public InitDocUpload getInitDocUpload () {\r
return initDocUpload;\r
}\r
\r
public CategoriesResponse getCategories () {\r
- ResponseDataObject response = pz2.doCommand("categories");\r
- if (response.hasApplicationError()) {\r
- logger.debug(response.getXml());\r
- return new CategoriesResponse();\r
- } else {\r
- try {\r
- return (CategoriesResponse) response;\r
- } catch (Exception e) {\r
- e.printStackTrace();\r
- logger.debug(response.getXml());\r
+ if (pz2.isServiceProxyService()) {\r
+ SpResponseDataObject response = (SpResponseDataObject) pz2.doCommand("categories");\r
+ if (response.unsupportedCommand()) {\r
+ logger.warn("Command 'categories' not supported by this Service Proxy"); \r
return new CategoriesResponse();\r
+ } else {\r
+ if (response.hasApplicationError()) {\r
+ logger.debug(response.getXml());\r
+ return new CategoriesResponse();\r
+ } else {\r
+ try {\r
+ return (CategoriesResponse) response;\r
+ } catch (Exception e) {\r
+ e.printStackTrace();\r
+ logger.debug(response.getXml());\r
+ return new CategoriesResponse();\r
+ }\r
+ }\r
}\r
+ } else {\r
+ return new CategoriesResponse();\r
}\r
}\r
\r