Webiny\Component\Security\Security::getFirewallEncoder PHP Method

getFirewallEncoder() private method

Returns the encoder instance for the given firewall.
private getFirewallEncoder ( string $firewallKey ) : Encoder
$firewallKey string Firewall name.
return Webiny\Component\Security\Encoder\Encoder
    private function getFirewallEncoder($firewallKey)
    {
        // get the encoder name
        $encoderName = $this->getFirewallConfig($firewallKey)->get('Encoder', 'Crypt');
        if (!$encoderName) {
            $encoderName = 'Plain';
        }
        // check if the encoder is defined in the global config
        $encoderConfig = $this->getConfig()->get('Encoders.' . $encoderName, false);
        // get the driver & params
        $driver = false;
        $params = null;
        if ($encoderConfig) {
            $driver = $encoderConfig->get('Driver', false);
            $params = $encoderConfig->get('Params', null, true);
        }
        // get the driver class name
        if (!$driver && isset(self::$encoders[$encoderName])) {
            // use built-in driver
            $driver = self::$encoders[$encoderName];
        } else {
            if (isset(self::$encoders[$driver])) {
                // driver defined as short-name built-in driver
                $driver = self::$encoders[$driver];
            } else {
                if (!$driver) {
                    throw new SecurityException('Invalid "Driver" param for "' . $encoderName . '" encoder.');
                }
            }
        }
        // create encoder instance
        return new Encoder($driver, $params);
    }