Pré-requis :
- Firewall ouvert port 8080 correspondant au connecteur http tomcat
Rajouter l"adresse IP du client fichier security.properties
accessRestrictionWSRestPhoto=hasIpAddress('127.0.0.1') or hasIpAddress('ip serveur') or ...
Exemple PHP
le plugin CURL doit être rajouté dans le php.ini
Programme appelant
print "<img src=\"thumbnail.php?code=".$eppn."\" width=125 height=150>";
thumbnail.php
<?php
extract($_GET);
Header("Content-type: image/jpeg");
$url = 'http://esup-sgc.univ-ville.fr:8080/wsrest/photo/'.$code.'/restrictedPhoto?cardEtat=ENABLED';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.1 Safari/537.11');
$res = curl_exec($ch);
$rescode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch) ;
echo $res;
exit;
?>
Exemple SQL ORACLE
url en paramètre
Function oracle
FUNCTION get_photo (p_url IN VARCHAR2)
RETURN BLOB;
Function body
FUNCTION get_photo (p_url IN VARCHAR2 )
RETURN BLOB
IS
l_http_request UTL_HTTP.req;
l_http_response UTL_HTTP.resp;
l_blob BLOB;
l_raw RAW(32767);
BEGIN
-- Initialize the BLOB.
DBMS_LOB.createtemporary(l_blob, FALSE);
-- Make a HTTP request and get the response.
l_http_request := UTL_HTTP.begin_request(p_url);
l_http_response := UTL_HTTP.get_response(l_http_request);
-- Copy the response into the BLOB.
BEGIN
LOOP
UTL_HTTP.read_raw(l_http_response, l_raw, 32766);
DBMS_LOB.writeappend (l_blob, UTL_RAW.length(l_raw), l_raw);
END LOOP;
EXCEPTION
WHEN UTL_HTTP.end_of_body THEN
UTL_HTTP.end_response(l_http_response);
END;
return l_blob;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.PUT_LINE(SQLERRM);
END;
Utilisation dans un report oracle
select get_photo ( 'http://esup-sgc.univ-ville.fr:8080/wsrest/photo/toto@univ-ville.fr/restrictedPhoto?cardEtat=ENABLED') photo , .....