camel-netty4-http基本身份验证不适用于karaf领域(在karaf容器上)

时间:2019-03-13 15:54:02

标签: apache-camel

这是我的骆驼上下文和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>

具有角色“ developer,srumMaster”的用户应该可以访问路径/ dev

具有角色“ tester,srumMaster”的用户可以访问路径/ test shuold

只有角色为“ srumMaster”的用户才能访问路径/ scrum shuold

karaf容器上的用户角色映射如下

karaf @ run()> jaas:user-list

用户名|集团|角色

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

卡拉夫| admingroup |管理员

卡拉夫| admingroup |经理

卡拉夫| admingroup |查看者

卡拉夫| admingroup |系统捆绑

dev1 |发展集团|开发人员

test1 | testGroup |测试员

scrum1 | scrumMasterGroup | scrumMaster

scrum1 | scrumMasterGroup |开发人员

scrum1 | scrumMasterGroup |测试员

1 个答案:

答案 0 :(得分:0)

该默认约束不受支持,因为它没有与Karaf使用的JAAS集成。因此,您需要构建自己的支持JAAS的角色来获取用户角色,然后匹配这些URI模式。