<commit_before><?php
    /**
     * Bu Dosya AnonymFramework'e ait bir dosyadır.
     *
     * @author vahitserifsaglam <<EMAIL>>
     * @see http://gemframework.com
     *
     */

    namespace Anonym\Security;
    use Anonym\Facades\Session;
    use Anonym\Security\Exception\VariableNotFoundException;
    use Anonym\Security\Exception\CsrfTokenMatchException;
    use Anonym\Security\CsrfTokenInterface;
    use Anonym\Http\Input;
    /**
     * Class CsrfToken
     * @package Anonym\Security
     */
    class CsrfToken implements CsrfTokenInterface
    {
        /**
         * Form gönderisinde aranacak değer
         *
         * @var string
         */
        private $formFieldName = '_token';

        /**
         * @var KeyGeneratorInterface
         */
        private $securityKeyGenerate;


        /**
         * sınıfı başlatır
         */
        public function __construct()
        {
            $this->useDefaultValues();
            Session::set('tokenName', $this->getFormFieldName());
        }

        /**
         * Yürütme işlemini yapar
         *
         * @return bool
         * @throws CsrfTokenMatchException
         */
        public function run()
        {
            if (Session::has('tokenName')) {
                $this->check();
            } else {
                return false;
            }
        }

        /**
         * Son kontrolleri yapar
         */
        private function check(){
            if (Input::has($this->getFormFieldName())) {
                $key = Input::get($this->getFormFieldName());
                if ($key === $this->getSession()->get($this->getFormFieldName())) {
                    return true;
                } else {
                    throw new CsrfTokenMatchException(sprintf('Girdiğiniz %s token olması gereken tokenle eşleşmiyor',
                        $key));
                }
            } else {
                throw new CsrfTokenMatchException(sprintf('Herhangi bir Token Girişi yapmamışsınız'));
            }

        }
        /**
         *  default olarak değerleri atar
         */
        private function useDefaultValues(){
            $this->setSecurityKeyGenerate( new SecurityKeyGenerator());
        }

        /**
         * Anahtar oluşturucuyu getirir.
         *
         * @return KeyGeneratorInterface<commit_msg>made some updates<commit_after><?php
    /**
     * Bu Dosya AnonymFramework'e ait bir dosyadır.
     *
     * @author vahitserifsaglam <<EMAIL>>
     * @see http://gemframework.com
     *
     */

    namespace Anonym\Security;
    use Anonym\Facades\Session;
    use Anonym\Security\Exception\VariableNotFoundException;
    use Anonym\Security\Exception\CsrfTokenMatchException;
    use Anonym\Security\CsrfTokenInterface;
    use Anonym\Http\Input;
    /**
     * Class CsrfToken
     * @package Anonym\Security
     */
    class CsrfToken implements CsrfTokenInterface
    {
        /**
         * Form gönderisinde aranacak değer
         *
         * @var string
         */
        private $formFieldName = '_token';

        /**
         * @var KeyGeneratorInterface
         */
        private $securityKeyGenerate;


        /**
         * sınıfı başlatır
         */
        public function __construct()
        {
            $this->useDefaultValues();
            Session::set('tokenName', $this->getFormFieldName());
        }

        /**
         * Yürütme işlemini yapar
         *
         * @return bool
         * @throws CsrfTokenMatchException
         */
        public function run()
        {
            if (Session::has('tokenName')) {
                $this->check();
            } else {
                return false;
            }
        }

        /**
         * Son kontrolleri yapar
         */
        private function check(){
            if (Input::has($this->getFormFieldName())) {
                $key = Input::get($this->getFormFieldName());
                if ($key === Session::get($this->getFormFieldName())) {
                    return true;
                } else {
                    throw new CsrfTokenMatchException(sprintf('Girdiğiniz %s token olması gereken tokenle eşleşmiyor',
                        $key));
                }
            } else {
                throw new CsrfTokenMatchException(sprintf('Herhangi bir Token Girişi yapmamışsınız'));
            }

        }
        /**
         *  default olarak değerleri atar
         */
        private function useDefaultValues(){
            $this->setSecurityKeyGenerate( new SecurityKeyGenerator());
        }

        /**
         * Anahtar oluşturucuyu getirir.
         *
         * @return KeyGeneratorInterface
{'fraction_non_alphanumeric': 0.1048906048906049, 'fraction_numerical': 0.0, 'mean_word_length': 1.5002680965147452, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 23, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '799512', 'n_tokens_mistral': 1331, 'n_tokens_neox': 1272, 'n_words': 237}