Domanda

Mi piacerebbe ottenere la mia (metro Java) webservice con un account di accesso.

Ecco come ho intenzione di farlo:

I passaggi necessari quando si chiama un metodo webservice sono:

  1. chiamata di accesso (user, pwd), ricevere un token di sessione 1.1 ricorda il token
  2. chiamata servicemethod (gettone, arg1, arg2 ...)
  3. controlli webservice se il token è noto, se non gettare un'eccezione altrimenti procedere
  4. logout o timeout dopo periodi di tempo di inattività x

le mie domande: 1. qual è la tua opinione su questo approccio? ha senso? 2. Ci sono delle librerie che prendono l'onere di scrivere una gestione della sessione (magari con la persistenza del database per sopravvivere riavvio app)

(la soluzione deve essere semplice e facilmente utilizzabile con i clienti Java e .NET)

grazie!

È stato utile?

Soluzione

Questo è fattibile e ho visto i servizi web utilizzando un approccio simile. Ma non vorrei implementare la mia soluzione personalizzata. Invece, vorrei utilizzare un token di protezione dalla specifica WS-Security e, più precisamente un nome utente Token (si ottiene questo da WSIT che fa parte di Metro ed è quindi interoperabile con client .NET). Dai un'occhiata alla questo articolo per un'introduzione.

Aggiornamento: Ulteriori indicazioni:

Non posso dire che ho trovato WS-Security molto cordiale, ma, comunque, la mia esperienza è che l'utilizzo di WS-Security richiede meno tempo rispetto l'implementazione di una soluzione personalizzata, è più sicuro e scale migliore (il controllo del database ad ogni chiamata ha un costo).

Modifica

Corretto i primi due link, perché erano morti. Impossibile trovare uno per il terzo, ma penso che il secondo dovrebbe coprire questo.

Altri suggerimenti

Non saltare immediatamente in attuare da soli da zero. Molti contenitori J2EE / framework Java offrono supporto per il controllo di accesso / accesso. Date un'occhiata alla documentazione per il quadro che si sta utilizzando.

Un'altra alternativa è semplice per implementare il controllo di accesso in un server web front-end; per esempio. Apache HTTPD che agisce come un proxy inverso per Tomcat.

Ho pensato di provare Apache Shiro , non posso davvero dire se il suo nulla di buono. Sembra buono però.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top