galmi/xacmlBundle

View on GitHub
Resources/config/services.xml

Summary

Maintainability
Test Coverage
<?xml version="1.0" encoding="UTF-8" ?>
<container xmlns="http://symfony.com/schema/dic/services"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://symfony.com/schema/dic/services
        http://symfony.com/schema/dic/services/services-1.0.xsd">
    <parameters>
        <parameter key="galmi_xacml.default_combining_algorithm" type="constant">\Galmi\Xacml\CombiningAlgorithmRegistry::FIRST_APPLICABLE</parameter>
        <parameter key="galmi_xacml.default_decision" type="constant">Galmi\Xacml\Decision::PERMIT</parameter>
    </parameters>

    <services>
        <service id="galmi_xacml_request" class="Galmi\Xacml\Request"/>
        <service id="galmi_xacml_combining_algorithm_registry" class="Galmi\Xacml\CombiningAlgorithmRegistry"/>
        <service id="galmi_xacml_func_registry" class="Galmi\Xacml\FuncRegistry"/>

        <service id="galmi_xacml.pip" class="Galmi\XacmlBundle\Xacml\PolicyInformationPoint">
            <argument type="service" id="doctrine.orm.entity_manager"/>
        </service>
        <service id="galmi_xacml.pdp" class="Galmi\XacmlBundle\Xacml\PolicyDecisionPoint">
            <argument type="service" id="doctrine.orm.entity_manager"/>
            <argument type="service" id="galmi_xacml_combining_algorithm_registry"/>
            <argument>%galmi_xacml.default_combining_algorithm%</argument>
            <argument>%galmi_xacml.default_decision%</argument>
        </service>

        <service id="security.xacml_authorization_checker"
                 class="Galmi\XacmlBundle\Security\Core\Authorization\AuthorizationChecker">
            <argument type="service" id="galmi_xacml_request"/>
            <argument type="service" id="galmi_xacml.pdp"/>
        </service>

        <!-- Twig extension for function is_xacml_granted(<action>, <object>) -->
        <service id="twig.extension.galmi_xacml.security" class="Galmi\XacmlBundle\Twig\Extension\SecurityExtension" public="false">
            <argument type="service" id="security.xacml_authorization_checker" on-invalid="ignore" />
            <tag name="twig.extension" />
        </service>

        <service id="galmi_xacml.request_environment"
                 class="Galmi\XacmlBundle\EventListener\EnvironmentRequestListener">
            <argument type="service" id="galmi_xacml_request"/>
            <tag name="kernel.event_listener" event="kernel.request" method="onKernelRequest"/>
        </service>
        <service id="galmi_xacml.xacml_request_subject" class="Galmi\XacmlBundle\EventListener\SubjectRequestListener">
            <argument type="service" id="galmi_xacml_request"/>
            <argument type="service" id="security.token_storage"/>
            <tag name="kernel.event_listener" event="kernel.request" method="onKernelRequest"/>
        </service>
        <service id="galmi_xacml.xacml_request_action" class="Galmi\XacmlBundle\EventListener\ActionRequestListener">
            <argument type="service" id="galmi_xacml_request"/>
            <tag name="kernel.event_listener" event="kernel.request" method="onKernelRequest"/>
        </service>
        <service id="galmi_xacml.xacml_request_resource"
                 class="Galmi\XacmlBundle\EventListener\ResourceRequestListener">
            <argument type="service" id="galmi_xacml_request"/>
            <argument type="service" id="annotations.reader"/>
            <tag name="kernel.event_listener" event="kernel.request" method="onKernelRequest"/>
        </service>
        <service id="galmi_xacml.xacml_request_listener" class="Galmi\XacmlBundle\Xacml\PolicyEnforcementPoint">
            <argument type="service" id="galmi_xacml_request"/>
            <argument type="service" id="galmi_xacml.pdp"/>
            <tag name="kernel.event_listener" event="kernel.request" method="onKernelRequest"/>
        </service>

    </services>
</container>