m2u-upass-core / src / my / com / upass / maybank / MaybankFacadeImpl.java @ 62:9571b0589c96
History | View | Annotate | Download (11.1 KB)
1 | 30:aec0089bb43e | hadi | package my.com.upass.maybank; |
---|---|---|---|
2 | |||
3 | 50:4121579eae5e | hadi | import java.text.ParseException; |
4 | 40:29d3fc38fdee | hadi | import java.util.ArrayList; |
5 | import java.util.Arrays; |
||
6 | 55:275e8875e7c0 | hadi | import java.util.Date; |
7 | 40:29d3fc38fdee | hadi | import java.util.LinkedList; |
8 | import java.util.List; |
||
9 | |||
10 | 30:aec0089bb43e | hadi | import javax.jws.WebService; |
11 | |||
12 | 40:29d3fc38fdee | hadi | import my.com.upass.MinimalConstants; |
13 | 33:9d5b4aece71c | hadi | import my.com.upass.UPassControllerV2; |
14 | 40:29d3fc38fdee | hadi | import my.com.upass.UPassException; |
15 | 46:8f67d8567943 | hadi | import my.com.upass.generic.hibernate.GenericDAOHibernate; |
16 | import my.com.upass.generic.hibernate.HibernateUtils; |
||
17 | 37:848f67a9b39c | hadi | import my.com.upass.maybank.entities.IbccUser; |
18 | 40:29d3fc38fdee | hadi | import my.com.upass.maybank.entities.Im2uUser; |
19 | import my.com.upass.maybank.entities.M2uUser; |
||
20 | import my.com.upass.maybank.entities.StockUser; |
||
21 | import my.com.upass.maybank.entities.TicketingUser; |
||
22 | import my.com.upass.maybank.entities.UserProfile; |
||
23 | 42:d32be3a379fb | hadi | import my.com.upass.pojo.ClientApp; |
24 | 37:848f67a9b39c | hadi | import my.com.upass.pojo.MinimalUserBean; |
25 | 40:29d3fc38fdee | hadi | import my.com.upass.pojo.UserAppAccess; |
26 | 52:7d9b71dd008a | hadi | import my.com.upass.util.MapWrapper; |
27 | 30:aec0089bb43e | hadi | |
28 | 40:29d3fc38fdee | hadi | import org.apache.log4j.Logger; |
29 | import org.hibernate.Session; |
||
30 | 30:aec0089bb43e | hadi | |
31 | 43:78b1d801d083 | hadi | /**
|
32 | * @author Hadi
|
||
33 | *
|
||
34 | */
|
||
35 | 32:d43f37e77545 | hadi | @WebService(
|
36 | serviceName = "MaybankFacade",
|
||
37 | endpointInterface = "my.com.upass.maybank.MaybankFacade")
|
||
38 | //
|
||
39 | public class MaybankFacadeImpl |
||
40 | extends MinimalMaybankFacadeImpl
|
||
41 | implements MaybankFacade {
|
||
42 | 30:aec0089bb43e | hadi | |
43 | 40:29d3fc38fdee | hadi | private static final Logger LOGGER = Logger.getLogger(MaybankFacadeImpl.class); |
44 | |||
45 | 33:9d5b4aece71c | hadi | private final UPassControllerV2 upcV2; |
46 | |||
47 | 40:29d3fc38fdee | hadi | //
|
48 | |||
49 | 33:9d5b4aece71c | hadi | public MaybankFacadeImpl() {
|
50 | upcV2 = new UPassControllerV2();
|
||
51 | } |
||
52 | |||
53 | @Override
|
||
54 | 55:275e8875e7c0 | hadi | public int newIbccAdminUser( |
55 | 39:e450611bea1f | hadi | String appAccessId, String hashedSecretKey, |
56 | 34:420c5039e742 | hadi | String username, String hashedPassword) { |
57 | 39:e450611bea1f | hadi | |
58 | 51:74be74b4d46a | hadi | final MinimalUserBean minUser = new MinimalUserBean(); |
59 | 40:29d3fc38fdee | hadi | minUser.setUsername(username); |
60 | 57:a253181a620a | hadi | minUser.setHashedPassword(hashedPassword); |
61 | 51:74be74b4d46a | hadi | |
62 | 57:a253181a620a | hadi | return newAdminUser(appAccessId, hashedSecretKey, minUser, ClientApp.APP_ID_CCPP);
|
63 | 30:aec0089bb43e | hadi | } |
64 | |||
65 | 51:74be74b4d46a | hadi | @Override
|
66 | 55:275e8875e7c0 | hadi | public int newIbccPublicUser( |
67 | 37:848f67a9b39c | hadi | String appAccessId, String hashedSecretKey, |
68 | String username, String hashedPassword, String panCc) { |
||
69 | |||
70 | 51:74be74b4d46a | hadi | final IbccUser ibccUser = new IbccUser(); |
71 | 37:848f67a9b39c | hadi | ibccUser.setPanCc(panCc); |
72 | |||
73 | 51:74be74b4d46a | hadi | final MinimalUserBean minUser = new MinimalUserBean(); |
74 | 37:848f67a9b39c | hadi | minUser.setUsername(username); |
75 | minUser.setHashedPassword(hashedPassword); |
||
76 | ibccUser.setMinUser(minUser); |
||
77 | |||
78 | return newUser(appAccessId, hashedSecretKey, ibccUser);
|
||
79 | } |
||
80 | |||
81 | 51:74be74b4d46a | hadi | @Override
|
82 | 55:275e8875e7c0 | hadi | public int newOnlineStockUser( |
83 | String appAccessId, String hashedSecretKey, |
||
84 | 58:dd2bc242b7f4 | hadi | String username, String idNo) { |
85 | 55:275e8875e7c0 | hadi | |
86 | StockUser stockUser = new StockUser();
|
||
87 | stockUser.setIdNo(idNo); |
||
88 | |||
89 | MinimalUserBean minUser = new MinimalUserBean();
|
||
90 | minUser.setUsername(username); |
||
91 | stockUser.setMinUser(minUser); |
||
92 | |||
93 | return newUser(appAccessId, hashedSecretKey, stockUser);
|
||
94 | } |
||
95 | |||
96 | @Override
|
||
97 | public int newIm2uUser( |
||
98 | 58:dd2bc242b7f4 | hadi | String appAccessId, String hashedSecretKey, String username, |
99 | 55:275e8875e7c0 | hadi | String wsFlag, String wsIdentCode, String wsMySgId, Date wsRegTimeStamp) { |
100 | |||
101 | Im2uUser im2uUser = new Im2uUser();
|
||
102 | im2uUser.setWsFlag(wsFlag); |
||
103 | im2uUser.setWsIdentCode(wsIdentCode); |
||
104 | im2uUser.setWsMySgId(wsMySgId); |
||
105 | im2uUser.setWsRegTimeStamp(wsRegTimeStamp); |
||
106 | |||
107 | MinimalUserBean minUser = new MinimalUserBean();
|
||
108 | minUser.setUsername(username); |
||
109 | im2uUser.setMinUser(minUser); |
||
110 | |||
111 | return newUser(appAccessId, hashedSecretKey, im2uUser);
|
||
112 | } |
||
113 | |||
114 | @Override
|
||
115 | 51:74be74b4d46a | hadi | public int newTicketingUser( |
116 | 52:7d9b71dd008a | hadi | String appAccessId, String hashedSecretKey, |
117 | String username, String hashedPassword, |
||
118 | 51:74be74b4d46a | hadi | String fullName, String firstName, String lastName, String payeeCode) { |
119 | |||
120 | final TicketingUser ticketingUser = new TicketingUser(); |
||
121 | ticketingUser.setFullName(fullName); |
||
122 | ticketingUser.setFirstName(firstName); |
||
123 | ticketingUser.setLastName(lastName); |
||
124 | ticketingUser.setPayeeCode(payeeCode); |
||
125 | 52:7d9b71dd008a | hadi | |
126 | 51:74be74b4d46a | hadi | final MinimalUserBean minUser = new MinimalUserBean(); |
127 | minUser.setUsername(username); |
||
128 | minUser.setHashedPassword(hashedPassword); |
||
129 | ticketingUser.setMinUser(minUser); |
||
130 | 52:7d9b71dd008a | hadi | |
131 | 51:74be74b4d46a | hadi | return newUser(appAccessId, hashedSecretKey, ticketingUser);
|
132 | } |
||
133 | 52:7d9b71dd008a | hadi | |
134 | 43:78b1d801d083 | hadi | /**
|
135 | * @deprecated
|
||
136 | * @see #lookupUsername(String, String, String)
|
||
137 | */
|
||
138 | @Override
|
||
139 | public Response lookupUsername_internal(
|
||
140 | String appAccessId, String hashedSecretKey, String username) { |
||
141 | |||
142 | throw new java.lang.UnsupportedOperationException(); |
||
143 | } |
||
144 | |||
145 | 33:9d5b4aece71c | hadi | @Override
|
146 | 39:e450611bea1f | hadi | public ResponseElement lookupUsername(
|
147 | 61:a55a184028a1 | hadi | String appAccessId, String hashedSecretKey, String username) { |
148 | |||
149 | final Response response = super.lookupUsername_internal( |
||
150 | appAccessId, hashedSecretKey, username); |
||
151 | |||
152 | return new ResponseElement(response); |
||
153 | } |
||
154 | |||
155 | /**
|
||
156 | * @deprecated
|
||
157 | * @see #lookupUsername(String, String, String)
|
||
158 | */
|
||
159 | @Override
|
||
160 | public Response lookupUsernameForApp_internal(
|
||
161 | 60:1cff9a56093f | hadi | String appAccessId, String hashedSecretKey, |
162 | String username, Integer appId) { |
||
163 | 39:e450611bea1f | hadi | |
164 | 61:a55a184028a1 | hadi | throw new java.lang.UnsupportedOperationException(); |
165 | } |
||
166 | |||
167 | @Override
|
||
168 | public ResponseElement lookupUsernameForApp(
|
||
169 | String appAccessId, String hashedSecretKey, |
||
170 | String username, Integer appId) { |
||
171 | |||
172 | final Response response = super.lookupUsernameForApp_internal( |
||
173 | 60:1cff9a56093f | hadi | appAccessId, hashedSecretKey, username, appId); |
174 | 61:a55a184028a1 | hadi | |
175 | 39:e450611bea1f | hadi | return new ResponseElement(response); |
176 | } |
||
177 | |||
178 | 43:78b1d801d083 | hadi | /**
|
179 | * @deprecated
|
||
180 | * @see #lookupPublicUsername(String, String, String)
|
||
181 | */
|
||
182 | 40:29d3fc38fdee | hadi | @Override
|
183 | 43:78b1d801d083 | hadi | public Response lookupPublicUsername_internal(
|
184 | 40:29d3fc38fdee | hadi | String appAccessId, String hashedSecretKey, String username) { |
185 | |||
186 | 42:d32be3a379fb | hadi | throw new java.lang.UnsupportedOperationException(); |
187 | 40:29d3fc38fdee | hadi | } |
188 | |||
189 | 39:e450611bea1f | hadi | @Override
|
190 | 42:d32be3a379fb | hadi | public ResponseElement lookupPublicUsername(
|
191 | 40:29d3fc38fdee | hadi | String appAccessId, String hashedSecretKey, String username) { |
192 | 39:e450611bea1f | hadi | |
193 | 42:d32be3a379fb | hadi | final Response response = super.lookupPublicUsername_internal(appAccessId, hashedSecretKey, username); |
194 | return new ResponseElement(response); |
||
195 | } |
||
196 | |||
197 | 43:78b1d801d083 | hadi | /**
|
198 | * @deprecated
|
||
199 | * @see #lookupPan1(String, String, String)
|
||
200 | */
|
||
201 | 42:d32be3a379fb | hadi | @Override
|
202 | public Response lookupPan1_internal(
|
||
203 | String appAccessId, String hashedSecretKey, String pan1) { |
||
204 | |||
205 | throw new java.lang.UnsupportedOperationException(); |
||
206 | } |
||
207 | |||
208 | @Override
|
||
209 | public ResponseElement lookupPan1(
|
||
210 | String appAccessId, String hashedSecretKey, String pan1) { |
||
211 | |||
212 | final Response response = super.lookupPan1_internal(appAccessId, hashedSecretKey, pan1); |
||
213 | return new ResponseElement(response); |
||
214 | } |
||
215 | |||
216 | 43:78b1d801d083 | hadi | /**
|
217 | * @deprecated
|
||
218 | * @see #lookupPan2(String, String, String)
|
||
219 | */
|
||
220 | 42:d32be3a379fb | hadi | @Override
|
221 | public Response lookupPan2_internal(
|
||
222 | String appAccessId, String hashedSecretKey, String pan1) { |
||
223 | |||
224 | throw new java.lang.UnsupportedOperationException(); |
||
225 | } |
||
226 | |||
227 | @Override
|
||
228 | public ResponseElement lookupPan2(
|
||
229 | String appAccessId, String hashedSecretKey, String pan2) { |
||
230 | |||
231 | final Response response = super.lookupPan2_internal(appAccessId, hashedSecretKey, pan2); |
||
232 | return new ResponseElement(response); |
||
233 | } |
||
234 | |||
235 | 43:78b1d801d083 | hadi | /**
|
236 | * @deprecated
|
||
237 | * @see #lookupPanCc(String, String, String)
|
||
238 | */
|
||
239 | 42:d32be3a379fb | hadi | @Override
|
240 | public Response lookupPanCc_internal(
|
||
241 | String appAccessId, String hashedSecretKey, String panCc) { |
||
242 | |||
243 | throw new java.lang.UnsupportedOperationException(); |
||
244 | } |
||
245 | |||
246 | @Override
|
||
247 | public ResponseElement lookupPanCc(
|
||
248 | String appAccessId, String hashedSecretKey, String panCc) { |
||
249 | |||
250 | final Response response = super.lookupPanCc_internal(appAccessId, hashedSecretKey, panCc); |
||
251 | return new ResponseElement(response); |
||
252 | 30:aec0089bb43e | hadi | } |
253 | |||
254 | 33:9d5b4aece71c | hadi | @Override
|
255 | 34:420c5039e742 | hadi | public int deleteUser( |
256 | 39:e450611bea1f | hadi | String appAccessId, String hashedSecretKey, |
257 | 34:420c5039e742 | hadi | String username) {
|
258 | 39:e450611bea1f | hadi | |
259 | 43:78b1d801d083 | hadi | int rc = MinimalConstants.ERR_UNKNOWN;
|
260 | Session session = null;
|
||
261 | try {
|
||
262 | session = HibernateUtils.currentSession(); |
||
263 | session.beginTransaction(); |
||
264 | |||
265 | 44:7a7fb8fcfd6e | hadi | rc = upcV2.deleteUserWithTheProfile(appAccessId, hashedSecretKey, username, session); |
266 | |||
267 | if (rc == MinimalConstants.ERR_SUCCESS)
|
||
268 | session.getTransaction().commit(); |
||
269 | else
|
||
270 | GenericDAOHibernate.rollbackTransactionIfAny(session); |
||
271 | |||
272 | } catch (UPassException e) {
|
||
273 | rc = e.getErrorCode(); |
||
274 | e.printStackTrace(); |
||
275 | GenericDAOHibernate.rollbackTransactionIfAny(session); |
||
276 | 43:78b1d801d083 | hadi | |
277 | } catch (Exception e) { |
||
278 | LOGGER.error(e, e); |
||
279 | GenericDAOHibernate.rollbackTransactionIfAny(session); |
||
280 | |||
281 | } finally {
|
||
282 | GenericDAOHibernate.closeSessionIfAny(session); |
||
283 | } |
||
284 | return rc;
|
||
285 | 30:aec0089bb43e | hadi | } |
286 | |||
287 | 33:9d5b4aece71c | hadi | @Override
|
288 | 40:29d3fc38fdee | hadi | public ResponseListElement searchUserByFilter(
|
289 | 52:7d9b71dd008a | hadi | String appAccessId, String hashedSecretKey, MapWrapper searchFilter) { |
290 | 39:e450611bea1f | hadi | |
291 | 40:29d3fc38fdee | hadi | ResponseListElement res = new ResponseListElement();
|
292 | 52:7d9b71dd008a | hadi | final List<MapWrapper> items = new LinkedList<MapWrapper>(); |
293 | 40:29d3fc38fdee | hadi | |
294 | Session session = null;
|
||
295 | try {
|
||
296 | session = HibernateUtils.currentSession(); |
||
297 | 42:d32be3a379fb | hadi | |
298 | 40:29d3fc38fdee | hadi | List<UserProfile> examples = new ArrayList<UserProfile>(5); |
299 | for (Class<? extends UserProfile> clazz : Arrays.asList( |
||
300 | IbccUser.class, Im2uUser.class, M2uUser.class, StockUser.class, TicketingUser.class)) { |
||
301 | |||
302 | final UserProfile example = clazz.newInstance();
|
||
303 | 52:7d9b71dd008a | hadi | example.mapToProperties(searchFilter.getMap()); |
304 | 40:29d3fc38fdee | hadi | examples.add(example); |
305 | } |
||
306 | 42:d32be3a379fb | hadi | List<UserProfile> profiles = upcV2.listProfilesByExamples(
|
307 | appAccessId, hashedSecretKey, examples, session); |
||
308 | |||
309 | 40:29d3fc38fdee | hadi | for (UserProfile profile : profiles)
|
310 | 52:7d9b71dd008a | hadi | items.add(new MapWrapper(profile.propertiesToMap()));
|
311 | 40:29d3fc38fdee | hadi | |
312 | res.setItems(items); |
||
313 | res.setCode(MinimalConstants.ERR_SUCCESS); |
||
314 | |||
315 | } catch (UPassException e) {
|
||
316 | LOGGER.info(e, e); |
||
317 | res.setCode(e.getErrorCode()); |
||
318 | |||
319 | 50:4121579eae5e | hadi | } catch (ParseException e) { |
320 | LOGGER.error(e, e); |
||
321 | res.setCode(MinimalConstants.ERR_INVALID_INPUT); |
||
322 | |||
323 | 40:29d3fc38fdee | hadi | } catch (Exception e) { |
324 | LOGGER.error(e, e); |
||
325 | res.setCode(MinimalConstants.ERR_UNKNOWN); |
||
326 | |||
327 | } finally {
|
||
328 | GenericDAOHibernate.closeSessionIfAny(session); |
||
329 | } |
||
330 | return res;
|
||
331 | 39:e450611bea1f | hadi | } |
332 | |||
333 | @Override
|
||
334 | public int changeIdNo( |
||
335 | String appAccessId, String hashedSecretKey, |
||
336 | String username, String idNo) { |
||
337 | |||
338 | 40:29d3fc38fdee | hadi | Session session = null;
|
339 | try {
|
||
340 | session = HibernateUtils.currentSession(); |
||
341 | session.beginTransaction(); |
||
342 | |||
343 | UserProfile profile = upcV2.findProfile( |
||
344 | 42:d32be3a379fb | hadi | appAccessId, hashedSecretKey, username, ClientApp.APP_ID_ONLINE_STOCK, session); |
345 | 40:29d3fc38fdee | hadi | |
346 | if (profile instanceof StockUser) { |
||
347 | StockUser stockUser = (StockUser) profile; |
||
348 | stockUser.setIdNo(idNo); |
||
349 | |||
350 | int rc = upcV2.updateProfileShallowly(
|
||
351 | appAccessId, hashedSecretKey, stockUser, session); |
||
352 | |||
353 | 44:7a7fb8fcfd6e | hadi | if (rc == MinimalConstants.ERR_SUCCESS)
|
354 | session.getTransaction().commit(); |
||
355 | else
|
||
356 | GenericDAOHibernate.rollbackTransactionIfAny(session); |
||
357 | |||
358 | 40:29d3fc38fdee | hadi | return rc;
|
359 | |||
360 | } else {
|
||
361 | GenericDAOHibernate.rollbackTransactionIfAny(session); |
||
362 | 42:d32be3a379fb | hadi | return MinimalConstants.ERR_INVALID_INPUT;
|
363 | 40:29d3fc38fdee | hadi | } |
364 | } catch (UPassException e) {
|
||
365 | LOGGER.info(e, e); |
||
366 | GenericDAOHibernate.rollbackTransactionIfAny(session); |
||
367 | return e.getErrorCode();
|
||
368 | |||
369 | } catch (Exception e) { |
||
370 | LOGGER.error(e, e); |
||
371 | GenericDAOHibernate.rollbackTransactionIfAny(session); |
||
372 | return MinimalConstants.ERR_UNKNOWN;
|
||
373 | |||
374 | } finally {
|
||
375 | GenericDAOHibernate.closeSessionIfAny(session); |
||
376 | } |
||
377 | } |
||
378 | |||
379 | 51:74be74b4d46a | hadi | @Override
|
380 | public CountResponseElement getFailedLoginsCount(
|
||
381 | String appAccessId, String hashedSecretKey, String username) { |
||
382 | |||
383 | CountResponse response = super.getFailedLoginsCount(appAccessId, hashedSecretKey, username);
|
||
384 | return new CountResponseElement(response); |
||
385 | } |
||
386 | |||
387 | 40:29d3fc38fdee | hadi | // Helper methods
|
388 | |||
389 | protected int newAdminUser( |
||
390 | 57:a253181a620a | hadi | String appAccessId, String hashedSecretKey, MinimalUserBean adminUser, Integer targetAppId) { |
391 | 40:29d3fc38fdee | hadi | |
392 | int rc = MinimalConstants.ERR_UNKNOWN;
|
||
393 | Session session = null;
|
||
394 | try {
|
||
395 | session = HibernateUtils.currentSession(); |
||
396 | session.beginTransaction(); |
||
397 | |||
398 | rc = upcV2.addUser( |
||
399 | 57:a253181a620a | hadi | appAccessId, hashedSecretKey, |
400 | adminUser, UserAppAccess.TYPE_ADMIN, targetAppId, session, true);
|
||
401 | 40:29d3fc38fdee | hadi | |
402 | 57:a253181a620a | hadi | if (rc == MinimalConstants.ERR_SUCCESS)
|
403 | session.getTransaction().commit(); |
||
404 | else
|
||
405 | 40:29d3fc38fdee | hadi | GenericDAOHibernate.rollbackTransactionIfAny(session); |
406 | |||
407 | } catch (Exception e) { |
||
408 | GenericDAOHibernate.rollbackTransactionIfAny(session); |
||
409 | LOGGER.error(e, e); |
||
410 | |||
411 | } finally {
|
||
412 | GenericDAOHibernate.closeSessionIfAny(session); |
||
413 | } |
||
414 | return rc;
|
||
415 | 30:aec0089bb43e | hadi | } |
416 | } |