Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
WF-1000X M6 è la sesta generazione di auricolare in-ear sviluppata da Sony, un prodotto che punta a coniugare facilità di utilizzo con una elevata qualità di riproduzione dei contenuti audio e una cura nella riduzione del rumore ambientale che sia da riferimento
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake ha presentato diverse novità per la sua piattaforma legate all'intelligenza artificiale. Quella forse più eclatante è una collaborazione con OpenAI, ma non mancano diverse nuove funzionalità che rendono la piattaforma più flessibile e in grado di rispondere meglio alle esigenze in continuo cambiamento delle aziende
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Con velocità teoriche fino a 11 Gbps, gestione tramite app intelligente e protezione avanzata dei dispositivi, Roamii BE Pro porta il Wi‑Fi 7 tri‑band nelle abitazioni più esigenti. Un sistema Wi-Fi Mesh proposto da MSI allo scopo di garantire agli utenti una rete fluida e continua capace di sostenere streaming 8K, gaming competitivo e le applicazioni moderne più esigenti in termini di banda
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 23-09-2006, 18:17   #1
anx721
Senior Member
 
L'Avatar di anx721
 
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
Gestire le autorizzazione in un'applicazione web

Salve,

supponiamo di avere un'applicazione a cui possono accedere utenti con ruoli diverso Ogni utente può eseguire delle azioni in base al proprio ruolo e in base alla sua identità.

Cosi ad esempio quando un utente clicca sul pulsante di modifica di un messaggio si controlla se l'autore del messaggio coincide con l'utente. In ogni pagina devono quindi essere eseguiti controlli di questo tipo; se ci sono molti tipi di utenti e molte possibili azioni la logica delle autorizzazioni viene ad essere "sparpagliata" su tutte le pagine ed è difficile gestirla e tenerla sotto controllo.

Voi come implementereste la cosa? Io pensavo di creare un componente (manager delle autorizzazioni) che può essere riferito ovunque nell'applicazione e in grado di concedere o negare un'azione. Pensavo di assegnare un codice identificativo ad ogni tipo di azione (ad esempio inserimento di un messaggio, modifica di un messaggio, ...), e all'oggetto su cui è eseguita l'azione (ad esempio il codice del forum ed eventualmente il codice del messaggio se l'azione riguarda un messaggio già inserito). Il manager delle autorizzazioni in base a questi codici risponde in modo affermativo o meno.
Ad esempio il manager delle autorizzazioni sa che in caso di modifica di un messaggio deve verificare che l'autore del messaggio coincida con l'utente corrente ed esegue la verifica interrogando le opportune tabelle del database. Chi scrive le pagine non deve preoccuparsi di come verificare le autorizzazioni, di quali tabelle andare a leggere, deve solo inviare la richista al manager.

Cosa ne pensate? Avete altre idee o conoscete altri modi standard di gestire la cosa?
__________________
Sun Certified Java Programmer
EUCIP Core Level Certified

European Certification of Informatics Professionals
anx721 è offline   Rispondi citando il messaggio o parte di esso
Old 23-09-2006, 18:27   #2
dierre
Senior Member
 
L'Avatar di dierre
 
Iscritto dal: Sep 2004
Città: Interamnia Urbs
Messaggi: 2126
La tua soluzione va benissimo. Però io, ipotizzando che tu debba fare un forum, progetterei tale "manager" in maniera dedicata per ogni tipo di "oggetto". Cioè un manager che gestisce l'autorizzazione nei 3d, un manager che gestisce le autorizzazioni a livello forum e così via. (Perché in generale solo una porzione delle autorizzazioni è uguale in tutte le "pagine"). (ereditarietà insomma)
__________________
Un wormhole (buco di tarlo, in italiano), detto anche Ponte di Einstein-Rosen, è una ipotetica caratteristica topologica dello spaziotempo che è essenzialmente una "scorciatoia" da un punto dell'universo a un altro, che permetterebbe di viaggiare tra di essi più velocemente di quanto impiegherebbe la luce a percorrere la distanza attraverso lo spazio normale.
Go to a Wormhole

Ultima modifica di dierre : 23-09-2006 alle 18:31.
dierre è offline   Rispondi citando il messaggio o parte di esso
Old 23-09-2006, 18:41   #3
anx721
Senior Member
 
L'Avatar di anx721
 
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
Non devo fare un forum, comuqnue avevo gia in mente di creare diversi componenti, uno per ogni contesto dell'applicazione, a cui il manager reindirizza le richieste in base ai codici che riceve.
__________________
Sun Certified Java Programmer
EUCIP Core Level Certified

European Certification of Informatics Professionals
anx721 è offline   Rispondi citando il messaggio o parte di esso
Old 23-09-2006, 19:18   #4
anonimizzato
 
Messaggi: n/a
Una sorta di tabella delle autorizzazioni come in MySQL giusto? Credo sia una buona idea.

Ultima modifica di anonimizzato : 23-09-2006 alle 21:17.
  Rispondi citando il messaggio o parte di esso
Old 23-09-2006, 20:13   #5
anx721
Senior Member
 
L'Avatar di anx721
 
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
Dal punto di vista del db nn spo quale sia la soluzione mgiliore, cioè se avere o meno una tabella che esplicitamente contiene le autorizzazioni. Se si adotta tale tabella i suoi record dovrebbero avere una struttura del tipo:

codice operazione | codice oggetto | codice utente


Così se la tabella contiene un record relativo all'utente X, all'operazione OP e all'oggetto OG allora l'utente X può eseguire l'operazione OP sull'oggetto OG, in caso contrario l'autorizzazione è negata.

Questa soluzione pero presesnta alcuni svantaggi:

1 - ridondanza delle informazioni: riprendendo l'esempio del forum, il fatto che un utente sia l'autore del messaggio gli conferisce automaticamente l'autorizzazione a modificarlo. Quindi questa autorizzazione viene ad essere memorizzata due volte nel database, una volta nella tabella che associa i messaggi agli autori e un'altra volta nella tabella delle autorizzazioni. E lo stesso varrebbe per tanti altri casi.

2 - Assegnare le autorizzazioni diventa più difficle: quando un utente scrive un messaggio bisogna parallelamente inserire nella tabella delle autorizzazioni un record che permetta all'utente di modificare il suo messggio, questa azione deve essere eseguita dalla componente applicativa che si occupa dell'inserimento del messaggi e quindi la gestione delle autorizzazioni sarebbe di nuovo frammentata. Alternativametne ogni componente apllicativa dovrebbe mandare al manager delle autorizzazioni una notifica delle azioni intervenute (ad esempio l'inserimento di un messaggio) in modo che il manager aggiorni la sua tabella, in questo caso pero ogni qualvolta un utente intraprende un azione il manager deve essere avvertito in modo che mantenga aggiornate le sue tabelle.

Se nn si utilizza la tabella delle autorizzazioni il manager calcola le autorizzazioni all'occorrenza in base ai dati già presenti nelle altre tabelle, questa soluzione pero può essere meno efficiente.

In entrambi i casi il manager deve essere in grado di calcolare un'autorizzazione in base ai dati delle tabelle; se si usa una tabella delle autorizzazioni, le autorizzazioni per un utente sono calcolate e aggiornate subito ogni qualvolta interviene un'azione, ma il manager deve ricevere le notifiche di tali azioni. Viceversa le autorizzazioni sono calcolate di volta in volta nel momento in cui sono richieste.
__________________
Sun Certified Java Programmer
EUCIP Core Level Certified

European Certification of Informatics Professionals
anx721 è offline   Rispondi citando il messaggio o parte di esso
Old 24-09-2006, 02:24   #6
0rph3n
Senior Member
 
L'Avatar di 0rph3n
 
Iscritto dal: Apr 2005
Città: Resana - TV
Messaggi: 960
Quote:
Originariamente inviato da anx721
codice operazione | codice oggetto | codice utente
codice operazione | codice oggetto | codice gruppo

ovviamente devi creare una tabella gruppi_utente che definisce appunto i gruppi utente e ad ogni utente assegnare uno o più gruppi!
questo secondo me facilita la gestione in quanto gli utenti sarebbero raggruppati in gruppi e la definizione delle autorizzazioni sarebbe limitata appunto ai gruppi invece che ai singoli utenti!
per avere un miglior controllo sarebbe ancora meglio:

codice operazione | codice oggetto | codice gruppo | valore

così potresti assegnare sia un valore positivo che negativo ed avere un maggior controllo nel caso in cui un utente appartenga a due gruppi diversi che presentano un'incongruenza in una particolare voce!

mi sono spiegato male lo so ma è il meglio che riesco a fare ora come ora in questo stato...
...e che sono anche tornato presto stasera!
inoltre non ho letto bene tutto il messaggio quindi se ho cozzato mi faccio la figura del coglione e amen!

baci, 'iao
0rph3n è offline   Rispondi citando il messaggio o parte di esso
Old 24-09-2006, 09:43   #7
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
J2EE tu permette un approccio integrato totalmente dichiarativo al problema. Sei sicuro di aver bisogno di sviluppare una soluzione più flessibile?
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 24-09-2006, 11:46   #8
thebol
Senior Member
 
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
Quote:
Originariamente inviato da anx721
-
1 - ridondanza delle informazioni: riprendendo l'esempio del forum, il fatto che un utente sia l'autore del messaggio gli conferisce automaticamente l'autorizzazione a modificarlo. Quindi questa autorizzazione viene ad essere memorizzata due volte nel database, una volta nella tabella che associa i messaggi agli autori e un'altra volta nella tabella delle autorizzazioni. E lo stesso varrebbe per tanti altri casi.

2 - Assegnare le autorizzazioni diventa più difficle: quando un utente scrive un messaggio bisogna parallelamente inserire nella tabella delle autorizzazioni un record che permetta all'utente di modificare il suo messggio, questa azione deve essere eseguita dalla componente applicativa che si occupa dell'inserimento del messaggi e quindi la gestione delle autorizzazioni sarebbe di nuovo frammentata. Alternativametne ogni componente apllicativa dovrebbe mandare al manager delle autorizzazioni una notifica delle azioni intervenute (ad esempio l'inserimento di un messaggio) in modo che il manager aggiorni la sua tabella, in questo caso pero ogni qualvolta un utente intraprende un azione il manager deve essere avvertito in modo che mantenga aggiornate le sue tabelle.
puoi risolvere entrambi i problemi creando l'astrazione del owner del msg
Nel senso puoi stabilire che l'utente X o appartenente al gruppo X puo editare i propri messaggi. Cosi non hai la ridondanza dell'informazione il msg Y è stato scritto da X.
thebol è offline   Rispondi citando il messaggio o parte di esso
Old 24-09-2006, 11:51   #9
dupa
Senior Member
 
L'Avatar di dupa
 
Iscritto dal: Jan 2002
Città: Napoli
Messaggi: 1727
Quote:
Originariamente inviato da kingv
J2EE tu permette un approccio integrato totalmente dichiarativo al problema. Sei sicuro di aver bisogno di sviluppare una soluzione più flessibile?
mi puoi linkare dove è spiegato l'approccio J2EE? grazie.
__________________
Se buttassimo in un cestino tutto ciò che in Italia non funziona cosa rimarrebbe? Il cestino.
dupa è offline   Rispondi citando il messaggio o parte di esso
Old 24-09-2006, 13:32   #10
anx721
Senior Member
 
L'Avatar di anx721
 
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
Quote:
Originariamente inviato da kingv
J2EE tu permette un approccio integrato totalmente dichiarativo al problema. Sei sicuro di aver bisogno di sviluppare una soluzione più flessibile?

Non utilizzo j2ee , asp.Net nel caso specifico. Qual è l'approccio in j2ee?

La sola appartenenza di un utente ad un gruppo nn mi basta per stabilire le azioni che un utente può compiere, ma in alcuni casi ho bisogno di conoscere l'identità dell'utente.

Quote:
Originariamente inviato da thebol
puoi risolvere entrambi i problemi creando l'astrazione del owner del msg
Nel senso puoi stabilire che l'utente X o appartenente al gruppo X puo editare i propri messaggi. Cosi non hai la ridondanza dell'informazione il msg Y è stato scritto da X.
Non devo implementare un forum, era solo un esempio per spiegare il problema, quindi gli scenari possono esere molto vari. In generale ci sono utenti divisi in gruppi. Un gruppo individua le opeazioni che un utente può fare, ma ogni utente di un gruppo puo lavorare solo sugli oggetti o task che gli vengono assegnati dai coordinatori o amministratori.
__________________
Sun Certified Java Programmer
EUCIP Core Level Certified

European Certification of Informatics Professionals

Ultima modifica di anx721 : 24-09-2006 alle 13:41.
anx721 è offline   Rispondi citando il messaggio o parte di esso
Old 24-09-2006, 17:58   #11
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
Quote:
Originariamente inviato da dupa
mi puoi linkare dove è spiegato l'approccio J2EE? grazie.
http://java.sun.com/j2ee/1.4/docs/tu....html#wp473533


per le applicazioni web non è un modello molto flessibile, e va bene solo per piccole applicazioni o esigenze di profilazioni abbastanza semplici, ma come dicevo è integrato nel linguaggio e negli application server.
kingv è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo M...
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Meta lavora a un sistema di riconoscimen...
Il mercato smartphone potrebbe registrar...
Apple punterà sull'architettura c...
NASA Curiosity: i processi non biologici...
Sega conferma l'arrivo di tanti nuovi gi...
La serie POCO X8 è pronta al debu...
Apple conferma che l'arrivo della 'nuova...
Le vendite di Square Enix sono in netto ...
iPhone 17e si mostra in un video 'first ...
Il nuovo Xiaomi Watch 5 è pronto ...
Steam Deck è out of stock in dive...
Le migliori offerte Amazon del weekend, ...
PC più potente, meno spesa: su Amazon ta...
Amazon Haul: come fare acquisti 'pazzi' ...
Threads permetterà agli utenti di...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 22:25.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v