2014-11-18 4 views
1

Как извлечь HTTP заголовки, какКак извлечь заголовки HTTP с помощью посредника

Authorization: ​"admin 0PN5J17HBGZHT7JJ3X82" 

где администратор это имя пользователя и 0PN5J17HBGZHT7JJ3X82 это пароль и присвоить его собственность/переменной, которая будет затем передается службе dss для проверки входа пользователя. Из того, что я знаю, наш API может сделать это с помощью пользовательских последовательностей и медиаторов (https://docs.wso2.com/display/AM170/Adding+Mediation+Extensions), но его неясный вопрос о том, как извлечь этот заголовок и назначить его для разных имен свойств, таких как логин и пароль.

Может ли этот заголовок медиатора позаботиться об этом? Или это другой способ сделать с помощью прокси-сервиса?

Заголовок Посредник

<in> 
    <header name="Authorization" value="admin 0PN5J17HBGZHT7JJ3X82" scope="transport"/> 
    <send> 
     <endpoint name="people"> 
      <address uri="http://localhost:9443/testapi/" format="get"/> 
     </endpoint> 
    </send> 
</in> 
<out> 
    <send/> 
</out> 

Proxy Service

<proxy name="adminServiceProxy" transports="https http" 
      startOnLoad="true" trace="disable"> 
     <description/> 
     <target> 
     <endpoint> 
      <address uri="https://localhost:9443/testapi"/> 
     </endpoint> 
     <inSequence> 
      <property name="Authorization" 
         expression="fn:concat('Basic ','admin:0PN5J17HBGZHT7JJ3X82')" 
         scope="transport"/> 
     </inSequence> 
     <outSequence> 
      <send/> 
     </outSequence> 
     </target> 
    </proxy> 

Спасибо

ответ

3

Вы можете извлечь, как это;

<property name="AuthHeader" expression="$trp:Authorization"/> 

Затем войти и посмотреть, что вы запрашиваете ..

<log> 
<property name =" Authheder value" expression=get-property('AuthHeader')/> 
</log> 

Затем построить Основной заголовок аутентификации, как вы указали в конфигурации прокси-сервера. Вот blog post, в котором объясняется, как вы можете извлекать различную информацию из последовательности

+0

Спасибо вам большое! –

+0

нужно сделать в ESB? Могу ли я создать прокси-сервер в APIM? –

+0

Вы можете определить такую ​​последовательность медиации и сохранить в реестре. А при публикации API выберите правильную последовательность https://docs.wso2.com/display/AM170/Adding+Mediation+Extensions. Или, да, вы можете определить свои сложные последовательности в прокси-службе, а из APIManager вызывать этот прокси-сервис в качестве конечной точки. – Ratha