Newsgroup: it.comp.www.php
Titolo: Programma esterno ed export dati

Salve a tutti,
 
	ho un sito pronto sviluppato con php 5.3 e ZF1.
Ora ho un'applicazione esterna scritta in Java che deve collegarsi al 
sito e in base alle credenziali passate estrapolare dei dati.
 
In ZF gestisco le autenticazioni con ACL e nel caso non venga passato 
alcun utente e password il sito "autentica" l'utente come guest, 
altrimenti estrapola i dati con il livello dell'utente. Il tutto 
funziona bene.
 
Ora devo connettere il programma al sito. Diciamo che in prima battuta 
vorrei semplicemente estrarre una tabella dal sito. Se io sul sito, dopo 
essermi autenticato, faccio 
http://miosito/miocontroller/action
 ,
visualizzo una bella lista di record formattata in una <table></table>.
 
Per quanto riguarda il Java, secondo Voi e per Vostra esperienza, mi 
conviene fare un parser che legga la pagina HTML e farla leggere a Java 
in modo da lasciare intatta la gestione delle autorizzazioni, quello che 
vedo ï¿œ gestito dal sito(se non vedo nulla il sito non mi ha autenticato) 
oppure esporto tutti i record su un file xml che scarico e leggo da 
Java? Questa soluzione ï¿œ forse la migliore per leggibilitï¿œ e operabilitï¿œ 
ma mi costringe a creare un file accessibile da web e soprattutto 
contenente record generalmente protetti. Il file xml risiedendo sul 
server ï¿œ comunque, a mio avviso, un buco alla sicurezza anche perchï¿œ per 
essere richiamato deve avere un nome leggibile anche dall'applicativo 
java che lo "crea" richiamando la pagina. Il mio dubbio ï¿œ se poi facendo 
"
http://miosito/tmp/xml/miofile.xml
" che deve risiedere in una cartella 
pubblica (giusto?) posso avere un buco e un male intenzionato possa 
capitare in questa cartella e leggere informazioni non di Sua pertinenza.
 
Voi che ne pensate? Come mi conviene fare?
 
Grazie!!!!

 Java?
 
Ti conviene fare dei controller apposta per l'export dei dati. Una specie 
di API pubblica. All'interno di questa API riutilizzi le ACL che hai gia` 
definito per dare l'accesso al programma Java come se fosse un normale 
utente. Solo che invece che restituirgli HTML gli restituisci XML.
 
Dai controller Zend puoi disabilitare sia il layout che il rendering da 
file, e generare l'XML totalmente da dentro il controller, senza fare una 
view.
 
Idealmente dovresti passare le informazioni di login ad ogni richiesta, 
senza contare sulla sessione per mantenere il login o, meglio ancora, 
definire delle API key autorizzate per l'accesso ai dati (ma questo 
implica che dovrai scrivere una nuova serie di ACL, o modificare le 
attuali).
 
 
L'alternativa e` di modificare il codice corrente, da Java passare un 
parametro (tra gli header HTTP della richiesta, o come parametro GET) e 
poi fare un controllo dai controller attuali, ma questo comporta la 
modifica di controller che sai che funzionano, e la possibilita` di 
introdurre errori, quindi io preferisco fare controller aggiuntivi.
 
Bye.

 attuali).
 
Mi sta bene questa prima opzione. Scrivere righe di codice in più per 
mantenere una certa sicurezza non mi scoccia affatto. Ma come faccio a 
creare un file xml senza fare render e view che java pensi invece che 
sia fisico?
 
Inoltre la mia login avviene su server ldap pertanto farò il bind a ogni 
connessione? Dove sta il problema? chiudo la connessione a ogni query. 
Povero log delle connessioni a ldap :D
 

 sia fisico?
 
Niente questa era facile:
 
$this->_helper->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);