Proyectos de Subversion LeadersLinked - Services

Rev

Rev 23 | Rev 27 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 23 Rev 24
Línea 7... Línea 7...
7
use Nullix\CryptoJsAes\CryptoJsAes;
7
use Nullix\CryptoJsAes\CryptoJsAes;
8
use GeoIp2\Database\Reader as GeoIp2Reader;
8
use GeoIp2\Database\Reader as GeoIp2Reader;
Línea 9... Línea 9...
9
 
9
 
10
use Laminas\Authentication\AuthenticationService;
10
use Laminas\Authentication\AuthenticationService;
11
use Laminas\Authentication\Result as AuthResult;
-
 
12
use Laminas\Db\Adapter\AdapterInterface;
-
 
13
use Laminas\Http\Header\SetCookie;
11
use Laminas\Authentication\Result as AuthResult;
14
use Laminas\Mvc\Controller\AbstractActionController;
-
 
15
use Laminas\Log\LoggerInterface;
-
 
16
use Laminas\View\Model\ViewModel;
12
use Laminas\Mvc\Controller\AbstractActionController;
Línea 17... Línea 13...
17
use Laminas\View\Model\JsonModel;
13
use Laminas\View\Model\JsonModel;
18
 
14
 
19
use LeadersLinked\Form\Auth\SigninForm;
15
use LeadersLinked\Form\Auth\SigninForm;
Línea 46... Línea 42...
46
use LeadersLinked\Model\UserPassword;
42
use LeadersLinked\Model\UserPassword;
Línea 47... Línea 43...
47
 
43
 
48
use LeadersLinked\Model\Connection;
44
use LeadersLinked\Model\Connection;
49
use LeadersLinked\Authentication\AuthImpersonateAdapter;
45
use LeadersLinked\Authentication\AuthImpersonateAdapter;
50
use LeadersLinked\Model\Network;
-
 
51
use LeadersLinked\Cache\CacheInterface;
-
 
52
use LeadersLinked\Cache\CacheImpl;
-
 
53
use Laminas\Mvc\I18n\Translator;
46
use LeadersLinked\Model\Network;
54
use LeadersLinked\Model\JwtToken;
47
use LeadersLinked\Model\JwtToken;
55
use LeadersLinked\Mapper\JwtTokenMapper;
48
use LeadersLinked\Mapper\JwtTokenMapper;
-
 
49
use Firebase\JWT\JWT;
Línea 56... Línea 50...
56
use Firebase\JWT\JWT;
50
use Firebase\JWT\Key;
57
 
51
 
Línea 117... Línea 111...
117
        $request = $this->getRequest();
111
        $request = $this->getRequest();
Línea 118... Línea 112...
118
 
112
 
119
        if ($request->isPost()) {
113
        if ($request->isPost()) {
120
            $currentNetworkPlugin = $this->plugin('currentNetworkPlugin');
114
            $currentNetworkPlugin = $this->plugin('currentNetworkPlugin');
-
 
115
            $currentNetwork = $currentNetworkPlugin->getNetwork();
-
 
116
            
-
 
117
            $jwtToken = null;
-
 
118
            $headers = getallheaders();
-
 
119
            if(isset($headers['authorization'])) {
-
 
120
                
-
 
121
                $token = trim($headers['authorization']);
-
 
122
                if (substr($token, 0, 6 ) == 'Bearer') {
-
 
123
                    
-
 
124
                    $token = trim(substr($token, 7));
-
 
125
                    
-
 
126
                    if(!empty($this->config['leaderslinked.jwt.key'])) {
-
 
127
                        $key = $this->config['leaderslinked.jwt.key'];
-
 
128
                        
-
 
129
                        
-
 
130
                        try {
-
 
131
                            $payload = JWT::decode($token, new Key($key, 'HS256'));
-
 
132
                            
-
 
133
                            
-
 
134
                            if(empty($payload->iss) || $payload->iss != $_SERVER['HTTP_HOST']) {
-
 
135
                                return new JsonModel(['success' => false, 'data' => 'Unauthorized - JWT - Wrong server',  'fatal'  => true]);
-
 
136
                            }
-
 
137
                            
-
 
138
                            $uuid = empty($payload->uuid) ? '' : $payload->uuid;
-
 
139
                            $jwtTokenMapper = JwtTokenMapper::getInstance($this->adapter);
-
 
140
                            $jwtToken = $jwtTokenMapper->fetchOneByUuid($uuid);
-
 
141
                            if(!$jwtToken) {
-
 
142
                                return new JsonModel(['success' => false, 'data' => 'Unauthorized - JWT - Expired',  'fatal'  => true]);
-
 
143
                            }
-
 
144
 
-
 
145
                        } catch(\Exception $e) {
-
 
146
                            return new JsonModel(['success' => false, 'data' => 'Unauthorized - JWT - Wrong key',  'fatal'  => true]);
-
 
147
                        }
-
 
148
                    } else {
-
 
149
                        return new JsonModel(['success' => false, 'data' => 'Unauthorized - JWT - SecreteKey required',  'fatal'  => true]);
-
 
150
                    }
-
 
151
                } else {
-
 
152
                    return new JsonModel(['success' => false, 'data' => 'Unauthorized - JWT - Bearer required',  'fatal'  => true]);
-
 
153
                }
-
 
154
            } else {
-
 
155
                return new JsonModel(['success' => false, 'data' => 'Unauthorized - JWT - Required',  'fatal'  => true]);
Línea 121... Línea 156...
121
            $currentNetwork = $currentNetworkPlugin->getNetwork();
156
            }
122
 
157
 
Línea 141... Línea 176...
141
            }
176
            }
Línea 142... Línea 177...
142
 
177
 
Línea 143... Línea 178...
143
            $form->setData($dataPost);
178
            $form->setData($dataPost);
-
 
179
 
144
 
180
            if ($form->isValid()) {
Línea 145... Línea 181...
145
            if ($form->isValid()) {
181
                
146
                $dataPost = (array) $form->getData();
182
                $dataPost = (array) $form->getData();
147
 
183
 
Línea 222... Línea 258...
222
                        }
258
                        }
223
                    } else {
259
                    } else {
224
                        $userIpMapper->update($userIp);
260
                        $userIpMapper->update($userIp);
225
                    }
261
                    }
Línea -... Línea 262...
-
 
262
 
226
 
263
                    /*
227
                    if ($remember) {
264
                    if ($remember) {
Línea 228... Línea 265...
228
                        $expired = time() + 365 * 24 * 60 * 60;
265
                        $expired = time() + 365 * 24 * 60 * 60;
229
 
266
 
Línea 234... Línea 271...
234
                    }
271
                    }
Línea 235... Línea 272...
235
 
272
 
236
 
273
 
-
 
274
                    $response = $this->getResponse();
237
                    $response = $this->getResponse();
275
                    $response->getHeaders()->addHeader($cookieEmail);
238
                    $response->getHeaders()->addHeader($cookieEmail);
-
 
239
 
-
 
240
 
276
                    */
Línea 241... Línea 277...
241
 
277