<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <type name="Magento\Framework\Console\CommandListInterface">
        <arguments>
            <argument name="commands" xsi:type="array">
                <item name="sansec_shield_sync_rules" xsi:type="object">Sansec\Shield\Console\Command\SyncRules</item>
            </argument>
        </arguments>
    </type>
    <type name="Magento\Framework\App\FrontControllerInterface">
        <plugin name="sansec_shield" type="Sansec\Shield\Plugin\Shield"/>
    </type>
    <type name="Sansec\Shield\Model\Rules">
        <arguments>
            <argument name="serializer" xsi:type="object">Sansec\Shield\Model\Serializer</argument>
        </arguments>
    </type>
    <type name="Sansec\Shield\Model\Report">
        <arguments>
            <argument name="serializer" xsi:type="object">Sansec\Shield\Model\Serializer</argument>
            <argument name="filteredHeaders" xsi:type="array">
                <item name="Cookie" xsi:type="string">Cookie</item>
                <item name="Set-Cookie" xsi:type="string">Set-Cookie</item>
                <item name="Authorization" xsi:type="string">Authorization</item>
            </argument>
        </arguments>
    </type>
    <type name="Sansec\Shield\Model\IP">
        <arguments>
            <argument name="ipHeaders" xsi:type="array">
                <item name="REMOTE_ADDR" xsi:type="string">REMOTE_ADDR</item>
                <item name="HTTP_CF_CONNECTING_IP" xsi:type="string">HTTP_CF_CONNECTING_IP</item>
                <item name="HTTP_X_REAL_IP" xsi:type="string">HTTP_X_REAL_IP</item>
                <item name="HTTP_CLIENT_IP" xsi:type="string">HTTP_CLIENT_IP</item>
                <item name="HTTP_X_FORWARDED_FOR" xsi:type="string">HTTP_X_FORWARDED_FOR</item>
            </argument>
        </arguments>
    </type>
    <virtualType name="Sansec\Shield\Logger\VirtualHandler" type="Magento\Framework\Logger\Handler\Base">
        <arguments>
            <argument name="fileName" xsi:type="string">/var/log/sansec_shield.log</argument>
        </arguments>
    </virtualType>
    <virtualType name="Sansec\Shield\Logger\VirtualLogger" type="Magento\Framework\Logger\Monolog">
        <arguments>
            <argument name="handlers" xsi:type="array">
                <item name="system" xsi:type="object">Sansec\Shield\Logger\VirtualHandler</item>
            </argument>
        </arguments>
    </virtualType>
    <type name="Sansec\Shield\Cron\SyncRules">
        <arguments>
            <argument name="logger" xsi:type="object">Sansec\Shield\Logger\VirtualLogger</argument>
        </arguments>
    </type>
    <type name="Sansec\Shield\Model\RuleFactory">
        <arguments>
            <argument name="logger" xsi:type="object">Sansec\Shield\Logger\VirtualLogger</argument>
        </arguments>
    </type>
    <type name="Sansec\Shield\Model\Rule">
        <arguments>
            <argument name="logger" xsi:type="object">Sansec\Shield\Logger\VirtualLogger</argument>
        </arguments>
    </type>
    <type name="Sansec\Shield\Model\Report">
        <arguments>
            <argument name="logger" xsi:type="object">Sansec\Shield\Logger\VirtualLogger</argument>
        </arguments>
    </type>
</config>
