Sessioni Applicative in Http. Tito Flagella tito@link.it



Documenti analoghi

Bibliografia: Utenti e sessioni

SESSION TRACKING DISPENSE

Gestire le sessioni con le Servlet

Tener traccia del client

Architetture Web parte 2

Corso di PHP. Prerequisiti. 6.1 PHP e il web 1. Conoscenza HTML Tecnica della programmazione Principi di programmazione web

Cup HiWeb. Integrazione dei servizi del CUP Marche in applicativi di terze parti

SMS API. Documentazione Tecnica YouSMS HTTP API. YouSMS Evet Limited

URI. Introduzione. Pag. 1

Programmazione server-side: Java Servlet

Laboratorio di Basi di Dati

MODULO 1 PARTE 3. Programmazione (scripting) server-side con PHP 3.c Cookies e sessioni. Goy - a.a. 2012/2013 Programmazione Web 1

Il Protocollo HTTP e la programmazione di estensioni Web

Documentazione API web v 1.0

Laboratorio Progettazione Web PHP e FORMs HTML. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2013/2014

Restrizioni di accesso alle risorse Web

Architettura MVC-2 A L B E R T O B E L U S S I A N N O A C C A D E M I C O /

TeamPortal. Servizi integrati con ambienti Gestionali

Introduzione alla programmazione Http lato server in Java

Casalini Crypto. Documento di protocollo tecnico VRS 2.1

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento

PROCEDURA APERTA PER L AFFIDAMENTO DELLA REALIZZAZIONE DI UN APP PER LA PRENOTAZIONE DELLE PRESTAZIONI SANITARIE E SERVIZI CONNESSI.

Antonio d Acierno 13/01/2006

Manuale Tecnico Indicazioni tecniche sulle modifiche apportate al Sito WebTelemaco Pratiche

REOL-Services Quick Reference Ver. 1.1 Tecno Press Srl. 1

View Mobile User s Guide

Obiettivo dell esercitazione

Tracciabilità degli utenti in applicazioni multipiattaforma

PSNET UC RUPAR PIEMONTE MANUALE OPERATIVO

Fon.Coop Sistema di Gestione dei Piani di Formazione. Manuale per la Registrazione utente nel Nuovo

Lezione 1 Introduzione

VntRAS Communication Suite

Laboratorio di reti II: Servlet

Traccia di soluzione dell esercizio del 25/1/2005

Dynamic DNS e Accesso Remoto

Web Programming. Lezione 4: Cookie e Sessioni. Giulio Rossetti 14/04/2011. Guru@Work

Servlet e JDBC. Servlet e Web Server. Servlet e Web Server. Servlet e Web Server. Richieste. Servlet. Servlet:

I.N.A.I.L. Certificati Medici via Internet. Manuale utente

TeamPortal. Servizi integrati con ambienti Gestionali


04/05/2011. Lezione 6: Form

Lezione III: Oggetti ASP e interazione tramite form HTML

Reti di Telecomunicazione Lezione 8

Servizio di Posta elettronica Certificata (PEC)

Lezione 6: Form 27/04/2012

Gestione On Line delle Domande

Manuale gestione Porta di Dominio OpenSPCoop 1.1

Servizio di Posta elettronica Certificata (PEC)

Come funziona il WWW. Architettura client-server. Web: client-server. Il protocollo

Framework di sicurezza della piattaforma OCP (Identity & Access Management)

Informatica per la comunicazione" - lezione 13 -

1/15. Manuale d uso. Rev.1 del 18 Settembre 2013 Rev.2 del 24 Settembre 2013 Rev.3 del 9 Dicembre 2013

IFInet Secure Webmail

FtpZone Guida all uso

FTP. Appunti a cura del prof. ing. Mario Catalano

INFORMATIVA SUI COOKIE

ALLEGATO AL CONTRATTO DI FORNITURA DEL SERVIZIO LEGALMAIL

Application Server per sviluppare applicazioni Java Enterprise

DOCFINDERWEB SERVICE E CLIENT

COME CONFIGURARE UN CLIENT DI POSTA

A2A technical presentation

Guida Utente della PddConsole. Guida Utente della PddConsole

3 ServletContext. Marco Tessarotto Programmazione dei Web Server Anno Accademico

InitZero s.r.l. Via P. Calamandrei, Arezzo

Guida dell utente. Centro di fatturazione UPS

GammaApp. & Euro09 Evolution

Il Registro dei Servizi di OpenSPCoop i. Il Registro dei Servizi di OpenSPCoop

Utilizzo di Certificati SSL e relative implicazioni

Il modo più moderno per promuovere i tuoi prodotti

SITI-Reports. Progetto SITI. Manuale Utente. SITI-Reports. ABACO S.r.l.

Modulo InWEB di InFarmaClick. Specifiche tecniche per l interfacciamento con i software gestionali di farmacia. Livello API 2005.

UTILIZZO DELLA RETE WIRELESS DIPARTIMENTALE

1. Manuale d uso per l interfaccia web di Gestione PEC2

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

Scheda attività. Lingue. Barra menu situ. Accesso (login) Attività vicine. Recapiti. descrizione. Fotografie

Gestione del sito web con Drupal

Siti web centrati sui dati (Data-centric web applications)

Cookies Privacy Policy Società e Salute S.p.A.

JackSMS API Introduzione... 2 Login... 3 Output Format... 5 ClientVersion... 5 Comandi disponibili... 6

Utilizzo della APP IrriframeVoice. Versione 1.0 maggio 2015

Procedura Gestione Pratiche Sicurezza Cantiere

1. Manuale d uso per l interfaccia web di Gestione PEC

Programmazione dei socket con TCP #2

Configurazione client di posta elettronica per il nuovo servizio . Parametri per la Configurazione dei client di posta elettronica

VERIFICHE E APPROVAZIONI CONTROLLO APPROVAZIONE

Manuale Utente PEC e Client di Posta tradizionale

Configurazione client di posta elettronica per il nuovo servizio . Parametri per la Configurazione dei client di posta elettronica

Fate doppio click sul file con nome postgresql-8.0.msi e impostate le varie voci come riportato nelle immagini seguenti:

Introduzione alle applicazioni di rete

ALICE AMMINISTRAZIONE UTENTI WEB

Servizio di Posta elettronica Certificata (PEC)

Servizio di Posta elettronica Certificata (PEC)

REGIONE SICILIANA. Implementazione del modello di governo clinico integrato U.F.A. ONCO EMA. al Decreto 10 Ottobre 2012 Regione e Siciliana

BRC CAR SERVICE CRM Manuale operativo

SSL: applicazioni telematiche SSL SSL SSL. E-commerce Trading on-line Internet banking... Secure Socket Layer

Il Gestore Eventi di OpenSPCoop i. Il Gestore Eventi di OpenSPCoop

Transcript:

Sessioni Applicative in Http Tito Flagella tito@link.it

Perché le sessioni Solitamente le transazioni http sono anonime e indipendenti Le applicazioni hanno bisogno di correlarle tra di loro

User1: http://bank.com/prelievo?amount=10000$ ---------------------------------------------- User1 : http://bank.com/login?user=gio&pass=pippo User1 : http://bank.com/prelievo?amount=10000$ User1 : http://bank.com/logout ---------------------------------------------- User1 : http://bank.com/login?user=gio&pass=pippo User1 : http://bank.com/prelievo?amount=10000$ User2 : http://bank.com/ prelievo?amount=10000$ ---------------------------------------------- User1 : http://bank.com/login?user=gio&pass=pippo User2 : http://bank.com/prelievo?user=gio&amount=10000$ Alcuni Esempi

Le Sessioni Web Una sessione è una sequenza di transazioni http, legate tra di loro secondo una logica applicativa La sessione ha solitamente un limite temporale, al temine del quale viene terminata dal servlet engine L applicazione può anche porre fine alla sessione eslicitamente (es: logout)

Come implementare una sessione E il server che deve iniziare la sessione, associando una credenziale unica (sessionid) ad ogni richiedente Il richiedente invierà il sessionid ad ogni accesso successivo al server In questo modo il server sarà capace di identificare la sessione abbinata ad ogni richiesta HTTP

Come implementare una sessione Hidden Form Fields <form method="post" action="/servlet/search"> <input type="text" name="searchtext"> <input type="hidden" </form> name="sessionid" value="23434abc">... URL Rewriting http://bank.com/prelievo?amount=10000$ http://bank.com/prelievo?amount=10000$&sessionid=23434abc request.getparametervalue("sessionid"); Cookies

User1: http://bank.com/prelievo?amount=10000$ ---------------------------------------------- User1 : http://bank.com/login?user=gio&pass=secret User1 : http://bank.com/prelievo?sessionid=1234&amount=10000$ User1 : http://bank.com/logout?sessionid=1234 ---------------------------------------------- User1 : http://bank.com/login?user=gio&pass=secret User1 : http://bank.com/prelievo?sessionid=1234&amount=10000$ User2 : http://bank.com/prelievo?sessionid=5678&amount=10000$ ---------------------------------------------- User1 : http://bank.com/login?user=gio&pass=pippo User2 : http://bank.com/prelievo?user=gio&amount=10000$ Esempi Rivisti

L uso dei Cookie Si tratta di un meccanismo per associare informazioni generiche al client tra connessioni http diverse http://www.ietf.org/rfc/rfc2109.txt Un cookie è introdotto dal server al client tramite l uso di un header Set-Cookie come parte di una risposta http Sintassi dei cookie Set-Cookie: NAME=VALUE; expires=date; path=path; domain=domain_name; secure

L uso dei Cookie i parametri DOMAIN e PATH individuano le URL per cui un cookie e` valido il parametro expires specifica la validità temporale del cooky (Es: Wdy, DD-Mon-YYYY HH:MM:SS GMT) il parametro secure indica che il Cookie va spedito solo se il canale e` sicuro (https)

L uso dei Cookie al momento della richiesta di una URL, il client spedisce al server tutti i cookie validi per la URL cui sta accedendo La sintassi per spedire i cookie è: Cookie: NAME1=OPAQUE_STRING1; NAME2=OPAQUE_STRING2... Si tratta di un meccanismo per aggiungere stato ad HTTP

HttpSession API I Servlet supportano le sessioni http tramite la HttpSession API. Si tratta di un interfaccia ad alto livello, implementata sulla base di Cookies o Riscrittura della URL. I servlet engine generalmente usano i cookies se il browser li supporta, e passano alla Riscrittura della URL quando i cookies sono esplicitamente disabilitati. Il tutto resta trasparente all utente.

HttpSession API Gestire una sessione tramite la HttpSession API dei servlet è piuttosto semplice Richiede la ricerca di un oggetto Session, associato con la richiesta corrente Creare una nuova sessione quando necessario Accedere/Imagazzinare informazioni associate a una sessione Invalidare le sessioni inutilizzate

HttpSession API L accesso alla sessione avviene tramite il method getsession di HttpServletRequest. HttpSession session = request.getsession(); Invocato con il parametro true, se necessario crea una nuova sessione: HttpSession session = request.getsession(true); Gli oggetti HttpSession vivono sul server Sono automaticamente associati ai richiedenti tramite cookies o URL-rewriting La sessione può essere invalidata, ad esempio al momento del logout, session.invalidate();

HttpSession API Ad ogni sessione è possibile associare coppie <nome, valore>, dove il valore è un qualunque oggetto java void setattribute(string thename, Object thevalue); Object getattribute(string thename); void removeattribute(string thename); Enumeration getattributenames(); In questo modo, una volta ottenuta la sessione, è possibile ottenere i dati già noti relativi al richiedente. Es: Session = request.getsession(); idutente = session.getattribute( login )

Esempio Uso delle Sessioni Form di Login Input name=utente Input name=password Action: http://server/negozio/servlet/login Method: POST Codice del Servlet login crea una nuova sessione session = req.getsession(true) se utente e password sono corretti, registra l identità del richiedente nella sessione: session.setattribute( login, utente); dove utente è ottenuto da: req.getparameter( utente ); Codice degli altri servlet Recupera la sessione associata alla richiesta session = req.getsession(): Verifica se esiste l attributo login nella sessione session.getattribute( login ); In caso negativo, rimanda l utente alla form di login

URL Rewriting nella Servlet API La Servlet API fornisce un metodo aggiuntivo per gestire le sessioni tramite la riscrittura delle URL response.encodeurl(url) Questo metodo va usato per trattare ogni URL prodotta dal servlet e invocabile dal browser. Ad esempio: out.println("<a href=/store/buy>acquista l articolo<a>"); Deve diventare: out.println( <a href= + response.encodeurl("/store/buy") + "> Acquista l articolo </a> ); Il risultato ottenuto diventa: <a href=/store/buy?sessionid=123456>acquista l articolo<a>