Вход Регистрация
Файл: vendor/laravel/framework/src/Illuminate/Encryption/EncryptionServiceProvider.php
Строк: 75
<?php

namespace IlluminateEncryption;

use 
IlluminateSupportServiceProvider;
use 
IlluminateSupportStr;
use 
LaravelSerializableClosureSerializableClosure;

class 
EncryptionServiceProvider extends ServiceProvider
{
    
/**
     * Register the service provider.
     *
     * @return void
     */
    
public function register()
    {
        
$this->registerEncrypter();
        
$this->registerSerializableClosureSecurityKey();
    }

    
/**
     * Register the encrypter.
     *
     * @return void
     */
    
protected function registerEncrypter()
    {
        
$this->app->singleton('encrypter', function ($app) {
            
$config $app->make('config')->get('app');

            return new 
Encrypter($this->parseKey($config), $config['cipher']);
        });
    }

    
/**
     * Configure Serializable Closure signing for security.
     *
     * @return void
     */
    
protected function registerSerializableClosureSecurityKey()
    {
        
$config $this->app->make('config')->get('app');

        if (! 
class_exists(SerializableClosure::class) || empty($config['key'])) {
            return;
        }

        
SerializableClosure::setSecretKey($this->parseKey($config));
    }

    
/**
     * Parse the encryption key.
     *
     * @param  array  $config
     * @return string
     */
    
protected function parseKey(array $config)
    {
        if (
Str::startsWith($key $this->key($config), $prefix 'base64:')) {
            
$key base64_decode(Str::after($key$prefix));
        }

        return 
$key;
    }

    
/**
     * Extract the encryption key from the given configuration.
     *
     * @param  array  $config
     * @return string
     *
     * @throws IlluminateEncryptionMissingAppKeyException
     */
    
protected function key(array $config)
    {
        return 
tap($config['key'], function ($key) {
            if (empty(
$key)) {
                throw new 
MissingAppKeyException;
            }
        });
    }
}
Онлайн: 0
Реклама