Do some resetting of session on login
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / pz2utils4jsf / pazpar2 / Pz2ProxyBean.java
1 package com.indexdata.pz2utils4jsf.pazpar2;\r
2 \r
3 import java.io.IOException;\r
4 import java.io.UnsupportedEncodingException;\r
5 \r
6 import javax.annotation.PostConstruct;\r
7 import javax.enterprise.context.SessionScoped;\r
8 import javax.enterprise.inject.Alternative;\r
9 import javax.inject.Inject;\r
10 import javax.inject.Named;\r
11 \r
12 import org.apache.log4j.Logger;\r
13 \r
14 import com.indexdata.pz2utils4jsf.config.Configuration;\r
15 import com.indexdata.pz2utils4jsf.config.ConfigurationReader;\r
16 import com.indexdata.pz2utils4jsf.pazpar2.sp.ServiceProxyClient;\r
17 import com.indexdata.pz2utils4jsf.pazpar2.sp.ServiceProxyInterface;\r
18 import com.indexdata.pz2utils4jsf.pazpar2.sp.ServiceProxySession;\r
19 import com.indexdata.pz2utils4jsf.pazpar2.sp.auth.ServiceProxyUser;\r
20 import com.indexdata.pz2utils4jsf.utils.Utils;\r
21 \r
22 @Named("pz2") @SessionScoped @Alternative\r
23 public class Pz2ProxyBean extends Pz2Bean implements ServiceProxyInterface {\r
24     \r
25   private static final long serialVersionUID = 4221824985678758225L;\r
26   private static Logger logger = Logger.getLogger(Pz2ProxyBean.class);  \r
27     \r
28   @Inject ConfigurationReader configurator;\r
29   @Inject ServiceProxyUser user;\r
30   \r
31   public Pz2ProxyBean() {\r
32   }\r
33   \r
34   @PostConstruct\r
35   public void instantiatePz2SessionObject() {\r
36     logger.debug(Utils.objectId(this) + " will instantiate a Pz2Session object next.");\r
37     pz2 = new ServiceProxySession();\r
38     searchClient = new ServiceProxyClient();\r
39     logger.info("Using [" + Utils.objectId(searchClient) + "] configured by [" \r
40                           + Utils.objectId(configurator) + "] on session [" \r
41                           + Utils.objectId(pz2) + "]" );    \r
42     pz2.configureClient(searchClient,configurator);\r
43   }\r
44 \r
45   @Override\r
46   public String login(String navigateTo) {\r
47     logger.info("doing login");\r
48     session().setUser(user);\r
49     session().resetDataObjects();\r
50     session().removeCommand("record");\r
51     session().setQuery(null);\r
52     return session().login(navigateTo);\r
53   }\r
54 \r
55   @Override\r
56   public void setInitFileName(String fileName) {\r
57     logger.info("Setting init file name: " + fileName);\r
58     session().setInitFileName(fileName);      \r
59   }\r
60 \r
61   @Override\r
62   public String getInitFileName() {\r
63     return session().getInitFileName();\r
64   }\r
65   \r
66   public void setAceFilter (String filterExpression) {\r
67     session().setAceFilter(filterExpression);\r
68   }\r
69   \r
70   public String getAceFilter () {\r
71     return session().getAceFilter();\r
72   }\r
73 \r
74   @Override\r
75   public String postInit() throws UnsupportedEncodingException, IOException {\r
76     logger.info("Posting init: " + System.currentTimeMillis());\r
77     session().postInit();\r
78     return "";\r
79   }\r
80   \r
81   public String postInit(byte[] initDoc) throws UnsupportedEncodingException, IOException {\r
82     logger.info("Posting init: " + System.currentTimeMillis());\r
83     session().postInit(initDoc);\r
84     return "";\r
85     \r
86   }\r
87 \r
88   @Override\r
89   public void setServiceProxyUrl(String url) {\r
90     logger.info("Setting Service Proxy url: " + url);\r
91     session().setServiceProxyUrl(url); \r
92     session().setQuery(null);\r
93     session().resetDataObjects();\r
94   }\r
95 \r
96   @Override\r
97   public String getServiceProxyUrl() {\r
98     return session().getServiceProxyUrl();    \r
99   }\r
100   \r
101   public ServiceProxySession session() {\r
102     return (ServiceProxySession)pz2;\r
103   }\r
104 \r
105   @Override\r
106   public String getInitResponse() {\r
107     return session().getInitResponse();\r
108   }\r
109   \r
110   public Configuration getClientConfiguration() {\r
111     return session().client().getConfiguration();\r
112   }\r
113   \r
114   public String getInitDocPath () {\r
115     return session().client().getConfiguration().get("INIT_DOC_PATH");\r
116   }\r
117 \r
118 }\r