

Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Esercizio sull'ereditarietà in Java. Permette di esercitarsi su diverse classi e metodi.
Tipologia: Esercizi
1 / 2
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!


FASE 1: la classe LogIn Un oggetto di tipo LogIn permette di effettuare la tipica azione di riconoscimento di credenziali (ovvero una username e una password preventivamente memorizzati) e autorizzare, quindi, l’accesso a un generico servizio. All’atto dell’ istanziazione, vengono inizializzate le credenziali corrette (ovvero la username e la relativa password) e lo stato di log a false; le tipiche azioni previste sono: logIn() Prevede l’immissione delle credenziali (username e password). Se sono coincidenti con quelle contestuali, lo stato di log passa a true. logOut() Imposta lo stato di log false. logged() Restituisce lo stato di log. cambiaPassword() Prevede il cambio della password solo se lo stato di log è a true. Richiede l’immissione della vecchia password, della nuova e conferma della nuova. Solo nel caso in cui la vecchia password coinciderà con la password interna e, contestuale, la nuova coinciderà con la conferma nuova, avverrà il cambio password. In caso contrario il cambio password non avrà successo. displayPassword() Prevede la visualizzazione della password solo se lo stato di log è a true. Scrivere la classe LogIn come descritta (avvalersi anche di altri metodi (private) se necessario) FASE 1: la classe LogIn2Fattori Un oggetto di tipo LogIn2Fattori (login a due fattori) prevede, oltre all’acquisizione della username e e della password, un ulteriore livello di controllo per concedere il permesso di accesso al generico servizio. Il secondo fattore di controllo consiste nell’inviare un SMS ad un numero di telefonino (preventivamente memorizzato), che si presume essere di proprietà dell’utente che intende loggarsi. Il contenuto del messaggio SMS conterrà un numero generato casualmente dal sistema. Tale numero dovrà essere digitato e reinserito, quindi ,nel sistema e varrà come ulteriore fattore di controllo dell’identità del richiedente. Se la procedura va a buon fine, il login sarà stato effettuato con successo. Scrivere la classe LogIn2Fattori come classe derivata dalla precedente. Prevedere la sovrascrittura dei metodi , ove necessario, e simulare l’invio dell’SMS con un semplice messaggio a video del tipo: Send message to 333.1122345 --- Codice numerico di controllo: 456 (num telefono dell’utente) (numero generato casualmente)
Prevedere la sovrascritture del metodo displayPassword() che permetta di visualizzare la password di accesso, memorizzata, solo se si è loggati e dopo aver superato un ulteriore secondo fattore di controllo. Collaudare le 2 classi implementando un’opportuna classe tester che prevede un menu (CHE SI RIPROPONE AD OLTRANZA) con le seguenti voci: 1 … LOGIN 2 … MOSTRAPASSWORD 3 … CAMBIAPASSWORD 4 … STATO DI LOG 5 … LOGOUT 7 … EXIT Solo dopo aver collaudato le 2 classi prevedere: l’implementazione di un ulteriore metodo resetPassword() su LogIn2Fattori che (dopo aver superato il controllo del secondo fattore) reimposta la password dell’utente con una password provvisoria composta da numeuser + numero randomico compreso tra 0 e 999. Prevedere quindi l’aggiunta della voce 6 nel menu: 6 … HO DIMENTICATO USER/PASSWORD