IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

WS-Security Forms PL/SQL


Sujet :

Oracle

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 55
    Points : 61
    Points
    61
    Par défaut WS-Security Forms PL/SQL
    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)

    Bonjour,

    Nous possédons une application forms (mode web).
    Cette application doit maintenant utiliser un web service.
    J'ai donc développer une procédure appellant ce Service et cela fonctionne très bien en mode Https (Web service de Test sur https).
    Le problème est que maintenant il faut que je contact le même web service qui se trouve Secure grace à WS-Security.
    Comment puis-je ajouter les headers de sécurité, signer le message,... .

    Toutes les idées sont les bien vennues.

    Merci d'avance.

    Pour ceux que cela intéresse, voici le code:
    (Attention, ce n'est que un test, pas de param,... pour le moment, mais le but final est d'appeler cette procédure en Forms).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    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://<USER>:<PASS>@10.0.2.21:8070', NULL);
      UTL_HTTP.set_persistent_conn_support(TRUE);
     
      request_env:='<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v1="http://fsb.belgium.be/EchoService/v1_00">'
    		   ||'<soapenv:Header/><soapenv:Body><v1:Echo>Ceci est un test accent " </v1:Echo></soapenv:Body></soapenv:Envelope>';
     
      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',<PASS>);
      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;

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 2
    Points : 3
    Points
    3

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 55
    Points : 61
    Points
    61
    Par défaut
    Le problème avec ce lien est que la wsse ajouter est une authentification et non une signature.
    Personnellement je ne vois pas comment développer moi même un proxy java qui va injecter les header de sécurité.

    Merci tout de même pour l'intérêt.

Discussions similaires

  1. [Forms - PL/SQL] Se déplacer dans un fichier
    Par Yoshidu62 dans le forum Forms
    Réponses: 2
    Dernier message: 15/11/2007, 11h21
  2. CQL une forme de SQL
    Par eclesia dans le forum Langage SQL
    Réponses: 0
    Dernier message: 08/08/2007, 10h17
  3. [Forms] et SQL Dynamique
    Par pat44 dans le forum Forms
    Réponses: 4
    Dernier message: 25/04/2007, 13h44
  4. [FORMS PL/SQL] Select for Update
    Par taska dans le forum Forms
    Réponses: 3
    Dernier message: 30/08/2006, 10h33
  5. [9i] Problèmes de performances Forms vs SQL*Plus
    Par Herveg dans le forum Oracle
    Réponses: 1
    Dernier message: 28/12/2005, 09h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo