Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Creare web service accessibili da username e password

354 views
Skip to first unread message

Marco Capoferri

unread,
Jul 23, 2012, 1:00:12 PM7/23/12
to
Ciao a tutti
Volevo chiedervi se conoscete dei buoni tutorial o avete realizzato in passato dei webservice che permettano di avere una risposta solo se sono stati forniti utente e password corretti.

Spiego meglio il mio caso d'uso. Attualmente ho una applicazione web PHP che deve accedere a dei dati presenti in un db relazionale (MySQL)che si comporta come deve, poco tempo fa ho avuto l'idea di scrivere una applicazione android che permetta di visualizzare alcune di queste informazioni agli utenti iscritti.

A questo punto l'idea in linea di massima sarebbe quella di avere l'applicativo java che pesca i dati e li espone all'esterno tramite la risposta inviata dal web service.
Inoltre così facendo al termine di tutto potrei far pescare dal ws anche PHP avendo così un unico punto di accesso ai dati.

Sapete consigliarmi una guida o un framework per fare tutto ciò abbastanza agilmente?

Grazie in anticipo.

Marco

coder

unread,
Jul 23, 2012, 3:46:18 PM7/23/12
to
On 07/23/2012 07:00 PM, Marco Capoferri wrote:
> Sapete consigliarmi una guida o un framework per fare tutto ci� abbastanza agilmente?

L'esposizione del problema e' un po' nebulosa.

Diciamo che credo di aver capito che vorresti avere un webservice come
backend. Questo backend sara' utilizzato sia dal sito web che
dall'applicazione android.

Ora vorresti sapere come passare al webservice la coppia
username/password per autenticare l'utente.

Per fare questo io utilizzo l'autenticazione a livello HTTP, una di
queste 2:
- autenticazione basic:
http://en.wikipedia.org/wiki/Basic_access_authentication, utilizzando
anche https, perche' la password passa in chiaro
- autenticazione digest:
http://en.wikipedia.org/wiki/Digest_access_authentication

Devi quindi vedere con la libreria che utilizzerai per creare il
webservice (axis per dirne una):
1) come si attiva l'autenticazione basic o digest
2) con quali metodi all'interno della tua implementazione del webservice
ottieni il nome dell'utente che si e' autenticato.

Ciao.

Marco Capoferri

unread,
Jul 24, 2012, 8:22:43 AM7/24/12
to
Ciao si mi sono espresso maluccio comunque hai capito il mio obbiettivo. Il web service dovrà fungere come backend ed il sito e l'applicazione saranno i due frontend.

Quale tipo di autenticazione consigli?
E quale libreria per implementare i ws consigli?

Grazie mille. Marco

coder

unread,
Jul 24, 2012, 3:45:24 PM7/24/12
to
On 07/24/2012 02:22 PM, Marco Capoferri wrote:
> Quale tipo di autenticazione consigli?
> E quale libreria per implementare i ws consigli?

Come dicevo prima ti consiglierei l'autenticazione a livello di
protocollo http, quindi l'autenticazione digest.

Per la libreria aiuterebbe sapere:
- che linguaggio e application server userai? java, php, python? linux
con tomcat o jboss? server windows? ... ecc...
- che livello di conoscenza hai di queste cose? conosci gia' SOAP o REST?
- quante richieste avra' il webservice? uso hobbistico o di produzione?

Ciao

Marco Capoferri

unread,
Jul 24, 2012, 8:43:11 PM7/24/12
to
Ciao grazie 1000 per la "consulenza" :D

Allora, l'applicazione backend da mettere sul server sarà assolutamente java (é il linguaggio con cui mi trovo meglio per cui...)
Per il frontend come avevo già detto ci sarà PHP per il sito e una app android ma quello é al momento il minore dei problemi, vorrei fare un passaggio per volta.

L'applicazione é da mettere in produzione ma si può quasi dire che é una cosa hobbistica. Lo useremo in azienda per rendere disponibile sul mio telefono e sul tablet del collega alcune informazioni presenti sul nostro sito ed altre che stiamo inserendo in questi giorni. Se faremo un centinaio di richieste al giorno saranno tante.

Però mi piace pensare che poi lo si possa sfruttare in modo molto più massivo dando un accesso ai cliwnti .

Il server al 99% sarà linux e per il container non ho preferenze, non ne ho mai usato uno per cui ho da imparare qualcosa di nuovo. Domandina stupida, il container non si può evitare usando l'annotazione @WebService e poi pubblicando la classe annotata?

Marco Albarelli (fu Motosauro) @fisso

unread,
Jul 25, 2012, 4:13:56 AM7/25/12
to
Io per cose piccole ho spesso usato un bel jetty embedded
Poche righe di codice e il tuo server funziona
M

--
I fatti mi cosano


Marco Capoferri

unread,
Jul 25, 2012, 4:35:26 AM7/25/12
to moto...@gmail.com
Il giorno mercoledì 25 luglio 2012 10:13:56 UTC+2, Marco Albarelli (fu Motosauro) @fisso ha scritto:

> Io per cose piccole ho spesso usato un bel jetty embedded
> Poche righe di codice e il tuo server funziona

cosa intendi per "cose piccole"? Mi riferisco a numero di richieste e mole di dati forniti.

Marco

Marco Albarelli (fu Motosauro) @fisso

unread,
Jul 25, 2012, 5:13:30 AM7/25/12
to
Finora al massimo gli ho fatto fare una decina di richieste al sec su un
backend non particolarmente pesante. Richieste sempre abbastanza piccole
e risposte che variano da pochi byte a ~1MB
Non ho avuto problemi se non per una macchina java che girava in
ambiente virtualizzato e si inchiodava ogni 3x2

coder

unread,
Jul 25, 2012, 5:58:50 AM7/25/12
to
On 07/25/2012 02:43 AM, Marco Capoferri wrote:
> Ciao grazie 1000 per la "consulenza" :D

Ti consiglio dunque una delle seguenti (ci sono tutorial a go-go) con
tomcat:
JAX-WS: http://jax-ws.java.net/
AXIS2: http://axis.apache.org/axis2/java/core/

oppure se utilizzi l'approccio REST:
JERSEY: http://jersey.java.net/

in entrambi i casi se ritornerai dell'xml ti sara' indispensabile
conoscere anche JAXB ed eventualmente, ma consigliata, una libreria di ORM.

Se sai gia' che ritornerai i risultati delle query su un db puoi
direttamente cercare tutorial che integrino persistenza+jaxb+creazione
del webservice.

Ciao.

Marco Capoferri

unread,
Jul 25, 2012, 8:21:00 AM7/25/12
to
Il giorno mercoledì 25 luglio 2012 11:58:50 UTC+2, coder ha scritto:
> On 07/25/2012 02:43 AM, Marco Capoferri wrote:
> > Ciao grazie 1000 per la "consulenza" :D
>
> Ti consiglio dunque una delle seguenti (ci sono tutorial a go-go) con
> tomcat:
> JAX-WS: http://jax-ws.java.net/
> AXIS2: http://axis.apache.org/axis2/java/core/
>
> oppure se utilizzi l'approccio REST:
> JERSEY: http://jersey.java.net/

In entrambi i casi è obbligatorio Tomcat (o JBoss o simili) oppure è evitabile? Chiedo non per pigrizia ma solo per sapere se posso evitare di aggiungiere strati che magari al momento non sono strettamente necessari.

> in entrambi i casi se ritornerai dell'xml ti sara' indispensabile
> conoscere anche JAXB ed eventualmente, ma consigliata, una libreria di ORM.

Per la libreria ORM devo togliermi un pò di ruggine da eclipselink, mentre jaxb lo rimpiazzo con XStream (http://xstream.codehaus.org/) che uso da un pò di tempo e mi sono sempre trovato molto bene.

> Se sai gia' che ritornerai i risultati delle query su un db puoi
> direttamente cercare tutorial che integrino persistenza+jaxb+creazione
> del webservice.

Non sempre tornerò direttamente i risultati delle query, in alcuni casi avrò da elaborarli leggermente prima di inviarli ed in futuro elaboreremo i dati che riceviamo a runtime.

Ciao Marco

Mau C

unread,
Jul 25, 2012, 8:35:38 AM7/25/12
to
Il 25/07/2012 14:21, Marco Capoferri ha scritto:
> Per la libreria ORM devo togliermi un p� di ruggine da eclipselink, mentre jaxb lo rimpiazzo con XStream (http://xstream.codehaus.org/) che uso da un p� di tempo e mi sono sempre trovato molto bene.

Jaxb ce l'hai gratis nella JVM. La curva di apprendimento � rapidissima,
per cui lascerei stare robe "legacy" e librerie esterne.

M.

coder

unread,
Jul 25, 2012, 8:37:04 AM7/25/12
to
On 07/25/2012 02:21 PM, Marco Capoferri wrote:
> In entrambi i casi � obbligatorio Tomcat (o JBoss o simili) oppure � evitabile

Ti consiglio vivamente di usare un application server per il fatto che
con un AS � molto pi� semplice installare/disinstallare le webapp (sotto
forma di file .war), configurarle, avviarle, stopparle, far convivere
pi� webapp sulla stessa porta, ecc... Il tutto da una comoda interfaccia
web.

Ciao.

Marco Capoferri

unread,
Jul 25, 2012, 8:47:45 AM7/25/12
to
Il giorno mercoledì 25 luglio 2012 14:35:38 UTC+2, Mau C ha scritto:
> Il 25/07/2012 14:21, Marco Capoferri ha scritto:
> > Per la libreria ORM devo togliermi un pò di ruggine da eclipselink, mentre jaxb lo rimpiazzo con XStream (http://xstream.codehaus.org/) che uso da un pò di tempo e mi sono sempre trovato molto bene.
>
> Jaxb ce l'hai gratis nella JVM. La curva di apprendimento è rapidissima,
> per cui lascerei stare robe "legacy" e librerie esterne.
>

Ok allora vedrò di darci una bella occhiata a jaxb.
Grazie 1000

Marco Capoferri

unread,
Jul 25, 2012, 8:49:47 AM7/25/12
to
Il giorno mercoledì 25 luglio 2012 14:37:04 UTC+2, coder ha scritto:
> Ti consiglio vivamente di usare un application server per il fatto che
> con un AS � molto pi� semplice installare/disinstallare le webapp (sotto
> forma di file .war), configurarle, avviarle, stopparle, far convivere
> pi� webapp sulla stessa porta, ecc... Il tutto da una comoda interfaccia
> web.
>

Ok allora mi guarderò per benino anche tomcat o glassfish. Quale consigli? se ci sono altre scelte migliori alle due che ho menzionato meglio ancora :)

Mau C

unread,
Jul 25, 2012, 8:58:11 AM7/25/12
to
Il 25/07/2012 14:49, Marco Capoferri ha scritto:
> Ok allora mi guarder� per benino anche tomcat o glassfish. Quale consigli? se ci sono altre scelte migliori alle due che ho menzionato meglio ancora :)

Uno � una panda, l'altro un SUV. Non sono facilmente confrontabili.
Dipende se devi girare in citt� o off-road :-)

M.

Marco Capoferri

unread,
Jul 25, 2012, 9:28:56 AM7/25/12
to
Il giorno mercoledì 25 luglio 2012 14:58:11 UTC+2, Mau C ha scritto:
>
> Uno � una panda, l'altro un SUV. Non sono facilmente confrontabili.
> Dipende se devi girare in citt� o off-road :-)
>

Oddio un SUV non è che faccia nemmeno tanto off-road... voglio vederti a fare sterrato, non troppo serio ma nemmeno la stradina con su un pò di ghiaia, con un SUV e voglio vedere quante bestemmie tiri nel vedere quanto fatica!!

comunque stando in termini automobilistici non vorrei ne la panda ne il suv, diciamo che una cosa tipo golf ci potebbe stare :)

coder

unread,
Jul 25, 2012, 10:24:51 AM7/25/12
to
On 07/25/2012 02:49 PM, Marco Capoferri wrote:
> Ok allora mi guarderò per benino anche tomcat o glassfish. Quale consigli

mentre tomcat e' un semplice "servlet container", jboss e glassfish sono
dei Java EE servers, cioe' hanno anche altre funzionalita' come JMS,
EJB, RMI, .... un sacco di funzionalita' che non credo userai.
0 new messages