Statistics
| Branch: | Revision:

m2u-upass-core / src / my / com / upass / vasco / TokenControllerMockup.java @ 17:4173ef25ee8d

History | View | Annotate | Download (3.68 KB)

1
/*
2
 * Copyright (c) 2012 Penril Datability (M) Sdn Bhd All rights reserved.
3
 *
4
 * This software is copyrighted. Under the copyright laws, this software
5
 * may not be copied, in whole or in part, without prior written consent
6
 * of Penril Datability (M) Sdn Bhd or its assignees. This software is
7
 * provided under the terms of a license between Penril Datability (M)
8
 * Sdn Bhd and the recipient, and its use is subject to the terms of that
9
 * license.
10
 */
11
package my.com.upass.vasco;
12

    
13
import java.util.HashMap;
14

    
15
import my.com.upass.Constants;
16
import my.com.upass.TOKEN_MODE;
17
import my.com.upass.TokenBean;
18
import my.com.upass.UPassControllerV2;
19
import my.com.upass.dao.DAOFactoryProvider;
20
import my.com.upass.dao.UserTacDAO;
21
import my.com.upass.dao.UserTokenDAO;
22
import my.com.upass.factory.UPassFactory;
23
import my.com.upass.pojo.TacBean;
24
import my.com.upass.pojo.UserTokenBean;
25
import my.com.upass.tac.TacController;
26

    
27
/*
28
 * <pre>
29
 * PROGRAMMER: Hadi Ahmadi        
30
 * CHANGE-NO:
31
 * TASK-NO:
32
 * DATE CREATED: Apr 2, 2012
33
 * TAG AS:
34
 * REASON(S):
35
 * MODIFICATION:
36
 * </pre>
37
 */
38

    
39
/**
40
 * The purpose of this mockup is to simulate token generation/verification for the sake of integration tests. Currently
41
 * in the absence of access to VASCO's own mockup APIs, this simulation is implemented by means of TAC module. TAC codes
42
 * are used as VASCO tokens, and session IDs as VASCO serial numbers.
43
 */
44
public class TokenControllerMockup implements TokenController {
45

    
46
        private TokenBean tokenBean;
47

    
48
        private TacController tacController;
49

    
50
        private int lastRetCode = -1;
51

    
52
        private final int APPLICATION_ID = Constants.SYSTEM_ID;
53

    
54
        public TokenControllerMockup(TokenBean tokenBean) {
55
                this.tokenBean = tokenBean;
56

    
57
                try {
58
                        UserTokenDAO vascoDao = DAOFactoryProvider.getDAOFactory().getUserTokenDAO(TOKEN_MODE.VASCO);
59
                        UserTokenBean uTokenBean = vascoDao.getTokenFromStoreBySerialNumber(tokenBean.getVserialNumber());
60

    
61
                        UserTacDAO tacDao = DAOFactoryProvider.getDAOFactory().getUserTacDAO();
62
                        TacBean tacBean = tacDao.getTacFromStore(uTokenBean.getUpassUser().getUserAlias(), APPLICATION_ID);
63

    
64
                        UPassControllerV2 upc = new UPassControllerV2();
65
                        tacController = UPassFactory.getTacController(tacBean, upc.getConfigurationsMap().get(APPLICATION_ID));
66

    
67
                } catch (Exception e) {
68
                        e.printStackTrace();
69
                }
70
        }
71

    
72
        public void setObject(TokenBean tokenBean) {
73
                this.tokenBean = tokenBean;
74
        }
75

    
76
        public TokenBean getUpdatedObject() {
77
                return tokenBean;
78
        }
79

    
80
        public int getRetCode() {
81
                return lastRetCode;
82
        }
83

    
84
        public String getLastError() {
85
                return "TOKEN_MOCKUP_ENABLED";
86
        }
87

    
88
        public HashMap<String, String> getTokenBlobInfo() {
89
                HashMap<String, String> map = new HashMap<String, String>();
90

    
91
                map.put("TOKEN_MODEL", "TOKEN_MODEL.value");
92
                map.put("USE_COUNT", "USE_COUNT.value");
93
                map.put("ERROR_COUNT", "ERROR_COUNT.value");
94
                map.put("LAST_TIME_USED", "LAST_TIME_USED.value");
95
                map.put("CODE_WORD", "CODE_WORD.value");
96
                map.put("TRIPLE_DES", "TRIPLE_DES.value");
97
                map.put("MAX_INPUT_FIELDS", "MAX_INPUT_FIELDS.value");
98
                map.put("RESPONSE_LENGTH", "RESPONSE_LENGTH.value");
99
                map.put("RESPONSE_TYPE", "RESPONSE_TYPE.value");
100
                map.put("RESPONSE_CHECKSUM", "RESPONSE_CHECKSUM.value");
101
                map.put("TIME_STEP_USED", "TIME_STEP_USED.value");
102

    
103
                return map;
104
        }
105

    
106
        public int verifyToken(String otp, String userAlias, String pin) throws Exception
107
        {
108
                return verifyToken(otp);
109
        }
110

    
111
        public synchronized int verifyToken(String password) {
112
                lastRetCode = tacController.VerifyTac(password, tokenBean.getVserialNumber());
113
                return lastRetCode;
114
        }
115

    
116
        public synchronized int resetToken() {
117
                lastRetCode = tacController.ResetTAC();
118
                return lastRetCode;
119
        }
120

    
121
        public int syncToken(String userAlias, String otp1, String otp2) {
122
                // TODO Auto-generated method stub
123
                return 0;
124
        }
125
}