La soluzione semplice per accedere alla restrizione quando il numero di utenti è piccolo è Access Control Matrix. Qui le righe sono gli utenti e le colonne sono diversi tipi di risorse.
Nel mio caso, ho un documento che devo servire con attributi diversi. Quindi le mie colonne avranno attributi diversi. Quindi ora è semplice matrice 2-D.
Ma ho dei requisiti che dipendono anche dalle informazioni contenute nel documento. Quindi diciamo che ho due tipi di documenti, uno con l'attributo X e l'altro senza l'attributo X.
Per quanto ho ottenuto, questo aumenterà la dimensione della mia matrice in 3-D, dove nell'asse Z avrò due voci, "X Attr Doc", "Without X Attr Doc".
I miei requisiti sono tali che dipende anche dalle informazioni che sto servendo.
Solo la Soluzione che ho trovato finora è avere una matrice 2-d e in ogni cella della matrice avere una certa regola.
Qui gli ClientID sono utenti diversi e Public, Core, Private, Default sono diverse categorie (set di attributi) di cui è concesso l'accesso o meno.
Puoi vedere in una cella, l'accesso è concesso solo se viene soddisfatta una determinata condizione che dipende dal documento.
Inoltre, voglio che in futuro questa tabella sia configurabile, per esempio, ogni volta che un nuovo client si registra, possiamo aggiungere una nuova riga. Oppure possiamo avere una nuova colonna se abbiamo una nuova categoria che deve essere servita.
C'è una soluzione migliore? In caso contrario, qualcuno può suggerire il modo più performante per implementarlo in JAVA. Stavo pensando al linguaggio delle espressioni come SPEL, ma non ne ho idea.