1 package com.indexdata.mkjsf.pazpar2.commands.sp;
\r
3 import org.apache.log4j.Logger;
\r
5 import com.indexdata.mkjsf.pazpar2.ClientCommandResponse;
\r
6 import com.indexdata.mkjsf.pazpar2.Pz2Service;
\r
7 import com.indexdata.mkjsf.pazpar2.commands.CommandParameter;
\r
8 import com.indexdata.mkjsf.pazpar2.commands.Pazpar2Command;
\r
9 import com.indexdata.mkjsf.pazpar2.data.ResponseParser;
\r
10 import com.indexdata.mkjsf.pazpar2.data.sp.SpResponseDataObject;
\r
13 * Authenticates a user against a Pazpar2 Service Proxy
\r
15 * @author Niels Erik
\r
18 public class AuthCommand extends Pazpar2Command implements ServiceProxyCommand {
\r
20 private static final long serialVersionUID = 5487611235664162578L;
\r
21 private static Logger logger = Logger.getLogger(AuthCommand.class);
\r
23 public AuthCommand() {
\r
27 public SpResponseDataObject run() {
\r
28 Pz2Service.get().resetSearchAndRecordCommands();
\r
29 Pz2Service.get().getPzresp().getSp().resetAuthAndBeyond(true);
\r
30 ClientCommandResponse response = (ClientCommandResponse) Pz2Service.get().getSearchClient().executeCommand(this);
\r
31 String renamedResponse = renameResponseElement(response.getResponseString(), "auth");
\r
32 response.setResponseToParse(renamedResponse);
\r
33 SpResponseDataObject responseObject = (SpResponseDataObject) ResponseParser.getParser().getDataObject(response);
\r
34 if (ResponseParser.docTypes.contains(responseObject.getType())) {
\r
35 Pz2Service.get().getPzresp().put(getCommandName(), responseObject);
\r
37 if (responseObject.unsupportedCommand()) {
\r
38 logger.error("auth command does not seem to be supported by this Service Proxy");
\r
40 return responseObject;
\r
43 private String renameResponseElement(String responseString, String newName) {
\r
44 responseString = responseString.replace("<response>", "<" + newName + ">");
\r
45 responseString = responseString.replace("</response>", "</" + newName + ">");
\r
46 return responseString;
\r
50 public void setAction (String action) {
\r
51 setParameterInState(new CommandParameter("action","=",action));
\r
54 public String getAction () {
\r
55 return getParameterValue("action");
\r
58 public void setUsername(String username) {
\r
59 setParameterInState(new CommandParameter("username","=",username));
\r
62 public String getUsername () {
\r
63 return getParameterValue("username");
\r
66 public void setPassword (String password) {
\r
67 setParameterInState(new CommandParameter("password","=",password));
\r
70 public String getPassword () {
\r
71 return getParameterValue("password");
\r
74 public AuthCommand copy () {
\r
75 AuthCommand newCommand = new AuthCommand();
\r
76 for (String parameterName : parameters.keySet()) {
\r
77 newCommand.setParameterInState(parameters.get(parameterName).copy());
\r
83 public ServiceProxyCommand getSp() {
\r
88 public boolean spOnly() {
\r