【问题标题】:Building Soap Security header from pl/sql从 pl/sql 构建 Soap Security 标头
【发布时间】:2020-06-01 14:07:09
【问题描述】:

我需要通过 pl/sql 直接从 oracle DB 向目标系统发送肥皂请求消息。我必须以编程方式构建安全标头,然后将其附加到肥皂请求中。对于所有肥皂请求的安全标头,wsse:username 和 wsse.Password 的值将保持不变。我的问题是如何通过 pl/sql 动态生成以下元素的值

wsu:Timestamp 包含 Id、created 和 expires 元素。 wsse:用户名令牌

我相信 UsernameToken 是一次性的,然后我可以在多个soap请求中重复使用它。但是每次发送WS请求的时候都要生成Timestamp的created和expires元素。

【问题讨论】:

    标签: soap plsql soapui


    【解决方案1】:

    下面的例子展示了如何使用商业的ORA_XML 包添加时间戳和用户名令牌:

    declare
      encode_password BOOLEAN;
      seconds_valid INT;
      
      signed_soap CLOB;
      soap_data CLOB;
    begin
    
        soap_data := '...';
            
        -- when TRUE only a digest of password is encoded, 
        -- when FALSE the password appears inside the message    
        encode_password := TRUE;
        -- Time of validity of the Timestamp signature
        -- 0 = valid forever
        seconds_valid := 300; 
        
        signed_soap := ORA_XML.SOAP_WSS_USERNAME_SIGN_TIMESTAMP(soap_data, 'user', 'pass', encode_password, seconds_valid);
                                         
        DBMS_OUTPUT.put_line('signed_data=' || signed_soap);
    end;
    

    免责声明:我为滴滴软件工作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多