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\mcpe\handler\SessionHandler;
|
||||
use pocketmine\PlayerInfo;
|
||||
use pocketmine\utils\BinaryDataException;
|
||||
use pocketmine\utils\BinaryStream;
|
||||
use pocketmine\utils\Utils;
|
||||
use pocketmine\utils\UUID;
|
||||
@ -117,7 +118,7 @@ class LoginPacket extends DataPacket{
|
||||
|
||||
/**
|
||||
* @throws BadPacketException
|
||||
* @throws \UnexpectedValueException
|
||||
* @throws BinaryDataException
|
||||
*/
|
||||
protected function decodeConnectionRequest() : void{
|
||||
$buffer = new BinaryStream($this->getString());
|
||||
@ -136,7 +137,11 @@ class LoginPacket extends DataPacket{
|
||||
$this->chainDataJwt = $chainData['chain'];
|
||||
foreach($this->chainDataJwt as $k => $chain){
|
||||
//validate every chain element
|
||||
try{
|
||||
$claims = Utils::getJwtClaims($chain);
|
||||
}catch(\UnexpectedValueException $e){
|
||||
throw new BadPacketException($e->getMessage(), 0, $e);
|
||||
}
|
||||
if(isset($claims["extraData"])){
|
||||
if(!is_array($claims["extraData"])){
|
||||
throw new BadPacketException("'extraData' key should be an array");
|
||||
@ -159,7 +164,11 @@ class LoginPacket extends DataPacket{
|
||||
}
|
||||
|
||||
$this->clientDataJwt = $buffer->get($buffer->getLInt());
|
||||
try{
|
||||
$clientData = Utils::getJwtClaims($this->clientDataJwt);
|
||||
}catch(\UnexpectedValueException $e){
|
||||
throw new BadPacketException($e->getMessage(), 0, $e);
|
||||
}
|
||||
|
||||
$v = new Validator();
|
||||
$v->required(self::I_CLIENT_RANDOM_ID)->integer();
|
||||
|
Loading…
x
Reference in New Issue
Block a user