webman升级到1.5版本后,重写的webman\support\Request类的parseGet()方法没有被执行
主要是在方法中对加密的参数进行了解密操作,在1.4版本中可以正确调用,升级到1.5版本后不行了。
重写的方法如下:
protected function parseGet()
{
$query_string = $this->queryString();
$this->_data['get'] = array();
if ($query_string === '') {
return;
}
Log::info('logincheck参数:'.$query_string);
$cacheable = static::$_enableCache && !isset($query_string[1024]);
if ($cacheable && isset($cache[$query_string])) {
$this->_data['get'] = $cache[$query_string];
return;
}
\parse_str($query_string, $this->_data['get']);
if (!in_array($this->action ,$this->exceptArr) ){
foreach ($this->_data['get'] as $key => $val){
//$val = des_cbc_decrypt($val,PARM_DES_KEY,PARM_DES_IV);
$tmpVal = $val;
$val = aesDecrypt($val,PARM_AES_KEY,PARM_AES_IV);
if (!$val && $this->action == 'appVersion' ) {
$val = $tmpVal;
}
Log::info('key:'.$key.' value:'.$val);
$this->_data['get'][$key] = $val;
}
}
if ($cacheable) {
$cache[$query_string] = $this->_data['get'];
if (\count($cache) > 256) {
unset($cache[key($cache)]);
}
}
}
发布后,该方法不能被执行。
centos7.4 + php7.4 + webman1.5
参考walkor的这个回帖已解决