2015-06-26 3 views
0

Мы пытаемся настроить ws-security на веб-службу, развернутую на Weblogic 10.3.6: цель состоит в том, чтобы разрешить выполнение ws только при аутентификации.weblogic Политика безопасности ws-oasis os oasis

Итак, мы создали пользователя («фиктивный») в области веб-поиска по умолчанию и передали учетные данные тем, кто разрабатывает клиент этого веб-сервиса.

Он выпустил тестовую Envelope работает на SOAP-UI

<soapenv:Envelope xmlns:sch="http://com.webservices.amm.standalone.key.provider/schema.xsd" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soapenv:Header> 
    <wsse:Security soapenv:mustUnderstand="1" 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"> 
    <wsse:UsernameToken wsu:Id="UsernameToken-2"> 
      <wsse:Username>dummy</wsse:Username>  
      <wsse:Password Type="**http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest**"><!-- digested password --></wsse:Password> 
      <wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary"><!-- encoding type --></wsse:Nonce> 
      <wsu:Created>2015-06-24T14:42:48.749Z</wsu:Created> 
    </wsse:UsernameToken> 
    </wsse:Security> 
    </soapenv:Header> 
    <soapenv:Body> 
     <sch:searchKeyReq> 
     <sch:KeyProviderInput> 

      <!--Here input attributes:--> 

     </sch:KeyProviderInput> 
     </sch:searchKeyReq> 
    </soapenv:Body> 
</soapenv:Envelope> 

которого ответом является

<?xml version='1.0' encoding='UTF-8'?> 
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> 
<S:Body><SOAP-ENV:Fault xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> 
    <faultcode xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">**SOAP-ENV:MustUnderstand**</faultcode> 
     <faultstring>MustUnderstand headers:[{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}Security] are not understood</faultstring> 
</SOAP-ENV:Fault></S:Body></S:Envelope> 

Очевидно, я думаю, это зависит от без конфигурации на WS-политике WebService.

Так вопросы:

1), который является политикой, которую мы должны связать с нашей веб-сервиса с помощью консоли администрирования или WebLogic @Policy аннотации в соответствии политики оазиса мы видим в soapenv: Тег заголовка>?

2) Пользователь «фиктивный» должен иметь определенную роль?

Заранее спасибо

ответ

0

Вы можете просто добавить ниже линии вашего класса веб-службы:

@Policy(uri = "Wssp1.2-2007-Https-UsernameToken-Plain.xml", attachToWsdl=true) 

С помощью этой политики вы говорите клиентам, которые посылают их имя пользователя и пароль (обычный текст). Существует другая политика, которую вы можете выбрать для отправки зашифрованного пароля, такого как Digest. Вы также можете выбрать эту политику из консоли weblogic.

А о роли пользователя, по моим сведениям, определение нового пользователя в сфере безопасности просто очень хорошо работает, но для управления ролями и разрешениями должны быть некоторые роли.

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