Cleans up SP auth, parse resps, store for display, etc
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / mkjsf / pazpar2 / ServiceProxyExtensions.java
index 560edb6..0ee2825 100644 (file)
@@ -12,8 +12,11 @@ import org.apache.log4j.Logger;
 import org.apache.myfaces.custom.fileupload.UploadedFile;\r
 \r
 import com.indexdata.mkjsf.config.ConfigurationReader;\r
+import com.indexdata.mkjsf.pazpar2.commands.CommandParameter;\r
 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
@@ -41,7 +44,8 @@ public class ServiceProxyExtensions implements ServiceProxyInterface, Serializab
     // TODO: \r
     //stateMgr.addStateListener(this);\r
   }\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
@@ -52,16 +56,34 @@ public class ServiceProxyExtensions implements ServiceProxyInterface, Serializab
       login("dummy");\r
     }\r
   }\r
+  */\r
 \r
-  @Override\r
+  \r
+  @Override  \r
   public String login(String navigateTo) {\r
     logger.info("doing login by " + user + " using " + pz2 + " and client " + pz2.getSpClient());\r
     pz2.resetSearchAndRecordCommands();\r
     pzresp.resetAllSessionData();\r
-    pz2.getSpClient().authenticate(user);    \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
+    AuthResponse responseObject = (AuthResponse) (ResponseParser.getParser().getDataObject(commandResponse.getResponseString()));\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
   }\r
   \r
+  \r
   public void ipAuthenticate (ServiceProxyUser user) {\r
     if (!user.isIpAuthenticated()) {\r
       if (user.isAuthenticated()) {\r
@@ -69,7 +91,20 @@ public class ServiceProxyExtensions implements ServiceProxyInterface, Serializab
       }\r
       pz2.resetSearchAndRecordCommands();\r
       pzresp.resetAllSessionData();\r
-      pz2.getSpClient().ipAuthenticate(user);\r
+      AuthCommand auth = pzreq.getSp().getAuth(); \r
+      auth.setParameterInState(new CommandParameter("action","=","ipAuth"));\r
+      ClientCommandResponse commandResponse = pz2.getSpClient().send(auth);\r
+      AuthResponse responseObject = (AuthResponse) (ResponseParser.getParser().getDataObject(commandResponse.getResponseString()));\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
   }\r
     \r