Switchyard基本身份验证

11

下面的认证策略在login-config.xml中定义

<policy>

<!--- - - - -->
  <application-policy name="myAuthenticationPolicy">
    <authentication>
      <login-module code="com.ge.trans.mp.samp.jaas.LoggingLdapExtLoginModule" flag="required">
        <module-option name="java.naming.factory.initial">com.sun.jndi.ldap.LdapCtxFactory</module-option>

以下是一个 switchyard 配置:

<switchyard xmlns="urn:switchyard-config:switchyard:1.0"
                xmlns:sy="urn:switchyard-config:switchyard:1.0"
                xmlns:bean="urn:switchyard-component-bean:config:1.0"
                xmlns:camel="urn:switchyard-component-camel:config:1.0"
                xmlns:http="urn:switchyard-component-http:config:1.0"
                xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912">
  <sca:composite name="http-bridge-esb" targetNamespace="urn:switchyard-quickstart:http-binding:1.0">
    <sca:service name="httpPostService" promote="HttpPostBuilder/HttpPost" **sy:security="basic-auth"**>
      <http:binding.http>
        <operationSelector operationName="postMessage"/>
        <http:contextPath>myContextPath</http:contextPath>
      </http:binding.http>
    </sca:service>
    <sca:component name="HttpPostBuilder">
       <camel:implementation.camel>
        <camel:xml path="META-INF/route.xml"/>
      </camel:implementation.camel>
      <sca:service name="HttpPost">
        <sca:interface.java interface="my.post.Class"/>
      </sca:service>
    </sca:component>
  </sca:composite>
  <domain>
    <securities>
      <**security name="basic-auth"** securityDomain="myAuthenticationPolicy" rolesAllowed="mesgPoster"/>
    </securities>
  </domain>
</switchyard>

这个配置启动于 JBoss 6.1 EAP 并且似乎可以正确接收消息,但是它似乎没有进行身份验证。

我假设默认的用户名密码回调处理程序用于处理基本认证,并且我也假设安全元素中的安全域引用与 login-config.xml 中配置的应用程序策略名称相关。

我似乎找不到一个示例配置,显示使用 LDAP 配置策略进行基本认证身份验证。

如果有人能指出我所漏掉的内容,或者提供一个 switchyard 基本认证配置示例的位置,那将非常感激。


我的意思是HTTP基本身份验证。 - dev
1个回答

0

您的login-config.xml文件不完整且无效。

它应该类似于这样:

<application-policy name="myAuthenticationPolicy">
  <authentication>
    <login-module flag="required" code="org.jboss.security.auth.spi.LdapExtLoginModule">
      <module-option name="java.naming.factory.initial">com.sun.jndi.ldap.LdapCtxFactory</module-option>
      <module-option name="java.naming.provider.url">ldap://XXX:389/</module-option>
      <module-option name="java.naming.security.authentication">simple</module-option>
      <module-option name="bindDN">XXX\XXX</module-option>
      <module-option name="bindCredential">XXX</module-option>
      <module-option name="baseCtxDN">dc=XXX,dc=XXX</module-option>
      <module-option name="baseFilter">(sAMAccountName={0})</module-option>
      <module-option name="rolesCtxDN">dc=XXX,dc=XXX</module-option>
      <module-option name="roleFilter">(member={1})</module-option>
      <module-option name="roleAttributeIsDN">true</module-option>
      <module-option name="roleNameAttributeID">name</module-option>
      <module-option name="java.naming.referral">follow</module-option>
    </login-module>
  </authentication>
</application-policy>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接