Базовая аутентификация Switchyard

В 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 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 и появляется для правильного приема сообщений, однако она не отображается для аутентификации.

Я предполагаю, что обработчик обратного вызова пароля имени пользователя по умолчанию используется для обработки базового auth, и я также предполагаю, что ссылка домена безопасности в элементе безопасности относится к имени политики приложения, настроенному в login-config.xml.

Мне кажется не удается найти конфигурацию примера, показывающую базовую аутентификацию аутентификации с использованием политики конфигурации LDAP.

Если кто-то может указать точки, которые мне не хватает, или где-нибудь, что пример для базовой конфигурации auth-switchyard существует, мы будем очень благодарны.

Ответ 1

Ваш 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>