camel-netty4-http обычная аутентификация не работает с областью karaf (в контейнере karaf) - PullRequest
0 голосов
/ 13 марта 2019

Вот мой верблюжий контекст и bean-компонент SecurityConstraintMapping

<bean id="constraint"
        class="org.apache.camel.component.netty4.http.SecurityConstraintMapping">
        <property name="inclusions">
            <map>
                <entry key="/dev/*" value="developer,scrumMaster" />
                <entry key="/test/*" value="tester,scrumMaster" />
                <entry key="/scrum/*" value="scrumMaster" />
            </map>
        </property>
        <property name="exclusions">
            <set>
                <value>/public/*</value>
            </set>
        </property>
    </bean>

    <camelContext id="camelCtx"
        xmlns="http://camel.apache.org/schema/blueprint">

        <routeBuilder ref="routeBuilder" />

        <route>
            <from
                uri="netty4-http:http://0.0.0.0:{{port}}/dev/ping?matchOnUriPrefix=true&amp;securityConfiguration.realm=karaf&amp;securityConfiguration.securityConstraint=#constraint" />
            <transform>
                <constant>This is ping URL for developer</constant>
            </transform>
        </route>

        <route>
            <from
                uri="netty4-http:http://0.0.0.0:{{port}}/test?matchOnUriPrefix=true&amp;securityConfiguration.realm=karaf&amp;securityConfiguration.securityConstraint=#constraint" />
            <transform>
                <constant>Hello Tester</constant>
            </transform>
        </route>

        <route>
            <from
                uri="netty4-http:http://0.0.0.0:{{port}}/scrum?matchOnUriPrefix=true&amp;securityConfiguration.realm=karaf&amp;securityConfiguration.securityConstraint=#constraint" />
            <transform>
                <constant>Hello Tester</constant>
            </transform>
        </route>

    </camelContext>

Путь / dev должен быть доступен пользователям, имеющим роли "developer, srumMaster"

Путь / тест должен быть доступендля пользователей, имеющих роли "tester, srumMaster"

Путь / scrum должны быть доступны пользователям, имеющим только роль "srumMaster"

Отображение роли пользователя в контейнере karaf выглядит следующим образом

karaf @ run ()> jaas: список пользователей

Имя пользователя |Группа |Роль

---------- + ------------------- + -------------

Караф |Admingroup |admin

karaf |Admingroup |менеджер

Караф |Admingroup |зритель

Караф |Admingroup |systembundles

dev1 |developmentGroup |разработчик

test1 |testGroup |тестер

scrum1 |scrumMasterGroup |scrumMaster

scrum1 |scrumMasterGroup |разработчик

scrum1 |scrumMasterGroup |тестер

1 Ответ

0 голосов
/ 13 марта 2019

Это ограничение не поддерживается этим ограничением по умолчанию, поскольку оно не интегрировано с JAAS, что и используется Карафом. Поэтому вам нужно создать свой собственный, поддерживающий JAAS, чтобы получить роли пользователя, а затем сопоставить их с этими шаблонами URI.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...