2016-07-09 4 views
0

Я использую собственный php SoapClient для создания клиента для использования веб-службы. Мне нужно подписать заголовки запросов мыла для запроса на Сервер. Кто-нибудь делал это раньше? Я не мог найти последнюю информацию. Это расширение php называется WSF, но оно устарело (прошло 6 лет, и он не обновился). Если вы сделали это раньше, пожалуйста, дайте мне знать. Заранее спасибо.Digitally Sign заголовки мыла в php

ответ

0

WSF для PHP не поддерживается с течением времени, и это боль, чтобы заставить его работать с последними версиями PHP (пожалуйста, подробно расскажите о своей среде разработки). Axis2/c Основная основа Soap за WSF для PHP всегда поддерживается, но не активно. (и полный memleak для 1.6.0). Однако некоторые ребята имеют дело с выпуском 1.7.0.

Когда мы говорим о подписи, мы ссылаемся на реализацию стратегии WS-Security. На заднем плане это модуль Axis2/c с именем Rampart/c. Rampart/c - ATTIC (см. http://attic.apache.org/), что означает устаревшее, но все еще работает нормально с последним из Axis2/c (svn trunk)

Непонятно, что вы хотите подписать. Если вы ссылаетесь на реализацию токена пользователя, вы можете попытаться установить WSF для PHP самостоятельно. Вам нужно будет установить объекты WSUsernameToken и WSPolicy, с соответствующими учетными данными и политикой в ​​соответствии с вашим контрактом на мыло. . В противном случае, если вы имеете в виду, чтобы подписать некоторые части ваших Мыльные заголовков (например, WS-адресация (REPLYTO и т.д.), пожалуйста, совет

так, если вы говорите о UsernameToken, рабочая политика будет:

<wsp:Policy wsu:Id="RmPolicy" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsrm="http://schemas.xmlsoap.org/ws/2005/02/rm/policy" xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702" xmlns:sanc="http://ws.apache.org/sandesha2/c/policy" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> 
<wsp:ExactlyOne> 
    <wsp:All> 
<sp:TransportBinding> 
      <wsp:Policy> 
      </wsp:Policy> 
     </sp:TransportBinding> 
     <sp:SignedSupportingTokens> 
      <wsp:Policy> 
       <sp:UsernameToken 
        sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient"> 
        <wsp:Policy> 
         <sp:WssUsernameToken10 /> 
        </wsp:Policy> 
       </sp:UsernameToken> 
      </wsp:Policy> 
     </sp:SignedSupportingTokens 
    </wsrm:RMAssertion> 
    </wsp:All> 
</wsp:ExactlyOne> 

я решил переписать расширение Php для Axis2/с (только клиент) с помощью PHPCPP. Here you will find the project.

, если вы работаете под Ubuntu и PHP> = 5.6 вы можете дать попробовать с этим решения и предоставить некоторые дополнительные edback. Я включил заголовок, SecurityToken, Policy, Fault, Client, Message .. Я продолжу улучшать его, и все еще есть некоторые недостающие функции. Установка непростая и требует компиляции всего

Теперь о выполнении этой работы на родном PHP .. не знаю.

+0

свет в конце тоннеля ... к сожалению, мое решение должно быть чисто родным. спасибо за ваше время: D – user1837224

Смежные вопросы