mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-05-11 16:29:40 +00:00
LoginPacket: account for some missed error cases
This commit is contained in:
parent
c9c6a5dc94
commit
44ef9fc577
@ -31,6 +31,7 @@ use pocketmine\entity\Skin;
|
|||||||
use pocketmine\network\BadPacketException;
|
use pocketmine\network\BadPacketException;
|
||||||
use pocketmine\network\mcpe\handler\SessionHandler;
|
use pocketmine\network\mcpe\handler\SessionHandler;
|
||||||
use pocketmine\PlayerInfo;
|
use pocketmine\PlayerInfo;
|
||||||
|
use pocketmine\utils\BinaryDataException;
|
||||||
use pocketmine\utils\BinaryStream;
|
use pocketmine\utils\BinaryStream;
|
||||||
use pocketmine\utils\Utils;
|
use pocketmine\utils\Utils;
|
||||||
use pocketmine\utils\UUID;
|
use pocketmine\utils\UUID;
|
||||||
@ -117,7 +118,7 @@ class LoginPacket extends DataPacket{
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @throws BadPacketException
|
* @throws BadPacketException
|
||||||
* @throws \UnexpectedValueException
|
* @throws BinaryDataException
|
||||||
*/
|
*/
|
||||||
protected function decodeConnectionRequest() : void{
|
protected function decodeConnectionRequest() : void{
|
||||||
$buffer = new BinaryStream($this->getString());
|
$buffer = new BinaryStream($this->getString());
|
||||||
@ -136,7 +137,11 @@ class LoginPacket extends DataPacket{
|
|||||||
$this->chainDataJwt = $chainData['chain'];
|
$this->chainDataJwt = $chainData['chain'];
|
||||||
foreach($this->chainDataJwt as $k => $chain){
|
foreach($this->chainDataJwt as $k => $chain){
|
||||||
//validate every chain element
|
//validate every chain element
|
||||||
$claims = Utils::getJwtClaims($chain);
|
try{
|
||||||
|
$claims = Utils::getJwtClaims($chain);
|
||||||
|
}catch(\UnexpectedValueException $e){
|
||||||
|
throw new BadPacketException($e->getMessage(), 0, $e);
|
||||||
|
}
|
||||||
if(isset($claims["extraData"])){
|
if(isset($claims["extraData"])){
|
||||||
if(!is_array($claims["extraData"])){
|
if(!is_array($claims["extraData"])){
|
||||||
throw new BadPacketException("'extraData' key should be an array");
|
throw new BadPacketException("'extraData' key should be an array");
|
||||||
@ -159,7 +164,11 @@ class LoginPacket extends DataPacket{
|
|||||||
}
|
}
|
||||||
|
|
||||||
$this->clientDataJwt = $buffer->get($buffer->getLInt());
|
$this->clientDataJwt = $buffer->get($buffer->getLInt());
|
||||||
$clientData = Utils::getJwtClaims($this->clientDataJwt);
|
try{
|
||||||
|
$clientData = Utils::getJwtClaims($this->clientDataJwt);
|
||||||
|
}catch(\UnexpectedValueException $e){
|
||||||
|
throw new BadPacketException($e->getMessage(), 0, $e);
|
||||||
|
}
|
||||||
|
|
||||||
$v = new Validator();
|
$v = new Validator();
|
||||||
$v->required(self::I_CLIENT_RANDOM_ID)->integer();
|
$v->required(self::I_CLIENT_RANDOM_ID)->integer();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user