WS-Security PL/SQL Forms

Posted on 16th Feb 2014 by admin

Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Prod
PL/SQL Release 10.2.0.2.0 - Production
Forms 32 Bit Version 10.1.2.0.2 (Production)

Hello,

I have an application in Forms (web mode). That application must now use a web service.
I therefore develop a procedure called this service and it works fine using HTTPS (Web Service Test on https).
The problem is that now I must touch on the same web service that has been secure with WS-Security.
How do I add headers security, sign the message ... .

All ideas are welcome.

Thank you beforehand.

For those interested, here's the code:
(Warning, this is only a test, no param, ... , but the ultimate goal is to call this procedure in Forms).

CREATE OR REPLACE procedure test_ws_fedict
IS
http_req utl_http.req;
http_resp utl_http.resp;
request_env varchar2(32767) DEFAULT NULL;
response_env varchar2(32767) DEFAULT NULL;
begin
UTL_HTTP.SET_DETAILED_EXCP_SUPPORT(TRUE);
-- Set proxy details if no direct net connection.
UTL_HTTP.set_proxy('http://:@10.0.2.21:8070', NULL);
UTL_HTTP.set_persistent_conn_support(TRUE);
request_env:=''
||'Ceci est un test accent "
';
dbms_output.put_line('Length of Request:' || length(request_env));
dbms_output.put_line ('Request: ' || request_env);
UTL_HTTP.set_wallet ('file:/Orasoftware/Oracle_wallet',);
http_req := utl_http.begin_request('https://fsb.services.int.belgium.be/1.00/CPS_SecuredEchoService','POST', utl_http.HTTP_VERSION_1_1);

utl_http.set_header(http_req, 'Content-Type', 'text/xml; charset=utf-8');
utl_http.set_header(http_req, 'Content-Length', length(request_env));
utl_http.set_header(http_req, 'SOAPAction', '"Echo"');
utl_http.write_text(http_req, request_env);
dbms_output.put_line('');
http_resp := utl_http.get_response(http_req);
dbms_output.put_line('Response Received');
dbms_output.put_line('--------------------------');
dbms_output.put_line ( 'Status code: ' || http_resp.status_code );
dbms_output.put_line ( 'Reason phrase: ' || http_resp.reason_phrase );
utl_http.read_text(http_resp, response_env);
dbms_output.put_line('Response: ');
dbms_output.put_line(response_env);
utl_http.end_response(http_resp);
EXCEPTION
when others then
DBMS_OUTPUT.put_line('Sqlerrm');
DBMS_OUTPUT.put_line(sqlerrm);
DBMS_OUTPUT.put_line('SqlCode');
DBMS_OUTPUT.put_line(sqlcode);
DBMS_OUTPUT.put_line('UTL_HTTP.get_detailed_sqlerrm')
DBMS_OUTPUT.put_line(UTL_HTTP.get_detailed_sqlerrm);
end test_ws_fedict;

Other forums