X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fcom%2Findexdata%2Fmkjsf%2Fpazpar2%2FServiceProxyExtensions.java;h=0ee282552ee8981e62318d86021e9396aea62be3;hb=bcb39bd9bde8071ac3a6741ce5d51ed9e763ba9c;hp=560edb6de631a219b51968a47b71fb7ce2a9bfed;hpb=16f342276da7b336c96e285005db5c1401f2a6c6;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 560edb6..0ee2825 100644 --- a/src/main/java/com/indexdata/mkjsf/pazpar2/ServiceProxyExtensions.java +++ b/src/main/java/com/indexdata/mkjsf/pazpar2/ServiceProxyExtensions.java @@ -12,8 +12,11 @@ import org.apache.log4j.Logger; import org.apache.myfaces.custom.fileupload.UploadedFile; import com.indexdata.mkjsf.config.ConfigurationReader; +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; @@ -41,7 +44,8 @@ public class ServiceProxyExtensions implements ServiceProxyInterface, Serializab // TODO: //stateMgr.addStateListener(this); } - + + /* public void login(String un, String pw) { 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."); @@ -52,16 +56,34 @@ public class ServiceProxyExtensions implements ServiceProxyInterface, Serializab login("dummy"); } } + */ - @Override + + @Override public String login(String navigateTo) { logger.info("doing login by " + user + " using " + pz2 + " and client " + pz2.getSpClient()); pz2.resetSearchAndRecordCommands(); pzresp.resetAllSessionData(); - pz2.getSpClient().authenticate(user); + AuthCommand auth = pzreq.getSp().getAuth(); + auth.setParametersInState(new CommandParameter("action","=","login"), + new CommandParameter("username","=",user.getName()), + new CommandParameter("password","=",user.getPassword())); + ClientCommandResponse commandResponse = pz2.getSpClient().send(auth); + AuthResponse responseObject = (AuthResponse) (ResponseParser.getParser().getDataObject(commandResponse.getResponseString())); + if (ResponseParser.docTypes.contains(responseObject.getType())) { + pzresp.put(auth.getCommandName(), responseObject); + } + String responseStr = commandResponse.getResponseString(); + logger.info(responseStr); + if (responseStr.contains("FAIL")) { + user.credentialsAuthenticationSucceeded(false); + } else { + user.credentialsAuthenticationSucceeded(true); + } return navigateTo; } + public void ipAuthenticate (ServiceProxyUser user) { if (!user.isIpAuthenticated()) { if (user.isAuthenticated()) { @@ -69,7 +91,20 @@ public class ServiceProxyExtensions implements ServiceProxyInterface, Serializab } pz2.resetSearchAndRecordCommands(); pzresp.resetAllSessionData(); - pz2.getSpClient().ipAuthenticate(user); + 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())); + if (ResponseParser.docTypes.contains(responseObject.getType())) { + pzresp.put(auth.getCommandName(), responseObject); + } + String responseStr = commandResponse.getResponseString(); + logger.info(responseStr); + if (responseStr.contains("FAIL")) { + user.credentialsAuthenticationSucceeded(false); + } else { + user.credentialsAuthenticationSucceeded(true); + } } }