Javadoc
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / mkjsf / pazpar2 / commands / sp / AuthCommand.java
1 package com.indexdata.mkjsf.pazpar2.commands.sp;\r
2 \r
3 import org.apache.log4j.Logger;\r
4 \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
11 \r
12 /**\r
13  * Authenticates a user against a Pazpar2 Service Proxy\r
14  * \r
15  * @author Niels Erik\r
16  *\r
17  */\r
18 public class AuthCommand extends Pazpar2Command implements ServiceProxyCommand {\r
19 \r
20   private static final long serialVersionUID = 5487611235664162578L;\r
21   private static Logger logger = Logger.getLogger(AuthCommand.class);\r
22 \r
23   public AuthCommand() {\r
24     super("auth");\r
25   }\r
26   \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
36     }\r
37     if (responseObject.unsupportedCommand()) {\r
38       logger.error("auth command does not seem to be supported by this Service Proxy");\r
39     }\r
40     return responseObject;\r
41   }\r
42   \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
47   }\r
48 \r
49   \r
50   public void setAction (String action) {\r
51     setParameterInState(new CommandParameter("action","=",action));\r
52   }  \r
53   \r
54   public String getAction () {\r
55     return getParameterValue("action");\r
56   }\r
57   \r
58   public void setUsername(String username) {\r
59     setParameterInState(new CommandParameter("username","=",username));\r
60   }\r
61   \r
62   public String getUsername () {\r
63     return getParameterValue("username");\r
64   }\r
65   \r
66   public void setPassword (String password) {\r
67     setParameterInState(new CommandParameter("password","=",password));\r
68   }\r
69   \r
70   public String getPassword () {\r
71     return getParameterValue("password");\r
72   }\r
73     \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
78     }    \r
79     return newCommand;\r
80   }\r
81 \r
82   @Override\r
83   public ServiceProxyCommand getSp() {\r
84     return this;\r
85   }\r
86 \r
87   @Override\r
88   public boolean spOnly() {\r
89     return true;\r
90   }\r
91 }\r