2015-12-15 28 views
10

Desidero trasferire la sessione di accesso Web alla mia applicazione desktop java, in modo che ancora una volta non voglia accedere alla mia applicazione desktop.Possiamo leggere i cookie salvati dal browser da un'applicazione desktop java?

Una volta che l'utente accede alla mia applicazione Web, ho impostato alcuni cookie sul sistema utente, una volta avviata la mia applicazione standalone vorrei utilizzare le credenziali memorizzate qui per accedere al mio utente nell'applicazione senza chiedere di re-login .

Le mie domande: - Posso accedere ai cookie per leggere token di autenticazione e altri parametri? È questa la soluzione giusta? - Per ottenere il suddetto requisito, esiste una soluzione adeguata.

Cookie sembrava una soluzione per me qui. Ma in sostanza voglio una perfetta integrazione tra l'applicazione web e l'applicazione standalone. Che tipo di soluzioni sono disponibili per questo?

+0

La condivisione di cookie tra browser non è possibile. Penso che sia anche per le applicazioni. http://superuser.com/questions/271710/synchronize-cookies-between-browsers .. Non sai se puoi leggere i cookie se incorpori il browser nella tua app. – Jayan

risposta

1
Non

sicuro di come Skype lo fa, ma sembra che sia WebEx e GoToMeeting si basano su estensioni del browser personalizzati che richiedono un permesso a "Comunicare con le applicazioni native che collaborano" (esempio di impostazione da Chrome).

Non sono riuscito a trovare nulla che sia nativo di JNLP che consente di leggere i cookie del browser poiché dovrebbe essere in modalità sandbox. Tuttavia, dopo aver effettuato il login tramite l'app Java, dovresti essere in grado di utilizzare lo JNLP Persistence APIs, se questo è utile.

1

Penso che dovresti fare un'inversione di tendenza, quando accedi al web, trasferisci qualche ID di sessione all'applicazione desktop.

La mia idea è eseguire un server localhost nella tua app desktop su qualche porta (usa Jetty). Quando si effettua l'accesso su Web, chiamerà un url su quel server locale per trasferire l'ID di sessione. Es:

localhost:8888/authen?sessionID=123456 

Quindi il server locale otterrà il parametro sessionID.

Se ritieni che questo sia adatto a te, ti spiegherò più dettagli