如何编写自定义处理程序(axis2处理程序)来读取自定义消息头并根据WSO2 ESB中的用户存储验证用户/密码

如何编写自定义处理程序(axis2处理程序)来读取自定义消息头并根据WSO2 ESB中的用户存储验证用户/密码,wso2,axis2,wso2esb,ws-security,rampart,Wso2,Axis2,Wso2esb,Ws Security,Rampart,我希望为添加自定义处理程序axis2处理程序,以读取消息中的自定义头并根据用户存储验证用户/密码。 我将如何实现这一点。 我的请求安全标头将如下所示 <soapenv:Header> <pr:authent soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next" soapenv:mustUnderstand="0" xmlns:pr="http://hh.eeeee.com/hh">

我希望为添加自定义处理程序axis2处理程序,以读取消息中的自定义头并根据用户存储验证用户/密码。 我将如何实现这一点。 我的请求安全标头将如下所示

<soapenv:Header>
          <pr:authent soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next" soapenv:mustUnderstand="0" xmlns:pr="http://hh.eeeee.com/hh">
             <pr:user>ssp</pr:user>
             <pr:password>MW</pr:password>
          </pr:authent>
       </soapenv:Header>
其中,由于wso2 esb需要WSSE标准格式,因此请求如下


如果只需要根据用户存储对用户进行身份验证,则可以直接使用AuthenticationAdmin服务。它希望用户名/密码作为soap主体的一部分。因此,使用PayloadFactory mediator生成消息正文,将从请求中提取的用户/密码设置为PF mediator的args,然后调用AuthnetationAdmin。感谢您的重播!我知道这个解决方案只需要将用户名和密码发送到其他一些端点,但这个功能的顺序是,正如我在代理前面看到的一样,只有用户名令牌doYes。。因此,您可以将WS-Sec添加到ESB端点,这样从ESB到后端的请求将填充安全头。需要考虑如何将您的参数注入到该请求中。感谢重播,在Synapse级别没有办法处理吗
soapenv:Header>
      <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" soapenv:mustUnderstand="1">
         <wsu:Timestamp wsu:Id="TS-4">
            <wsu:Created>2014-06-02T07:15:21Z</wsu:Created>
            <wsu:Expires>2014-06-02T08:38:41Z</wsu:Expires>
         </wsu:Timestamp>
         <wsse:UsernameToken wsu:Id="UsernameToken-3">
            <wsse:Username>admin</wsse:Username>
            <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">admin</wsse:Password>
            <wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">byWKVY4stEATvTqaoNMswQ==</wsse:Nonce>
            <wsu:Created>2014-06-02T07:15:21.304Z</wsu:Created>
         </wsse:UsernameToken>
      </wsse: >
   </soapenv:Header>