Monitoraggio Accessi

62 views
Skip to first unread message

Federico Maroncelli

unread,
May 4, 2021, 1:35:51 PM5/4/21
to manydesigns-portofino-italian
Ciao nella versione 4.2.9 è possibile avere una cronologia degli accessi?

Grazie

Alessio Stalla

unread,
May 5, 2021, 7:58:47 AM5/5/21
to manydesigns-po...@googlegroups.com
Ciao, in generale su Tomcat puoi abilitare l'access_log a prescindere da Portofino, vedi ad esempio https://www.techstacks.com/howto/configure-access-logging-in-tomcat.html

On Tue, 4 May 2021 at 19:35, Federico Maroncelli <marf...@gmail.com> wrote:
Ciao nella versione 4.2.9 è possibile avere una cronologia degli accessi?

Grazie

--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "manydesigns-portofino-italian" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a manydesigns-portofin...@googlegroups.com.
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msgid/manydesigns-portofino-italian/da7eb0eb-9ddb-4b5d-83bc-88089934f436n%40googlegroups.com.

Federico Maroncelli

unread,
May 5, 2021, 10:45:35 AM5/5/21
to manydesigns-portofino-italian
Si Grazie ma è possibile con Portofino avere un elenco delle utenze che ho creato in piattaforma con i gruppi di privilegi risalire alla cronologia degli accessi?

Alessio Stalla

unread,
May 5, 2021, 10:53:53 AM5/5/21
to manydesigns-po...@googlegroups.com
Ogni volta che un utente effettua login o logout Portofino emette un messaggio di log (che se non hai particolari configurazioni finisce nei log di Tomcat). Il messaggio contiene l'id dell'utente. Eventualmente si possono redirigere i messaggi in un file di log dedicato. Per altre esigenze di storicizzazione (ad esempio su database) occorre scriversi la logica necessaria, solitamente nel Security.groovy.

Federico Maroncelli

unread,
Jul 18, 2022, 11:41:57 AM7/18/22
to manydesigns-portofino-italian
Ciao Alessio.
Posso chiedere un informazione?
nel  Security.groovy dove posso creare la logica del salvataggio sul DB dell' utente di login?

Alessio Stalla

unread,
Jul 19, 2022, 3:20:48 AM7/19/22
to manydesigns-portofino-italian
Ciao Federico,

non ho sottomano i sorgenti di P4 ma generalmente le opzioni sono due:
  • o modifichi action.groovy della pagina di login, facendo override del metodo login (doLogin in P5)
  • oppure in Security.groovy hai i due metodi loadAuthenticationInfo (per il login vero e proprio) e loadAuthorizationInfo che invece carica i gruppi.
Nel primo modo, fai una modifica sola e se vuoi salvare info su utente e gruppi puoi fare un solo inserimento a DB perché hai tutte le informazioni. Però becchi solo i login fatti attraverso la GUI.
Nel secondo modo, devi fare due diverse modifiche e quindi due inserimenti diversi (ma solo se ti interessano sia utenti che gruppi), e intercetti anche eventuali login programmatiche se hai ad esempio job schedulati che fanno login, o webservice/REST che non passano dalla pagina di login.

PS se non l'hai ancora fatto ti chiedo la cortesia di compilare il questionario anonimo su Portofino (https://forms.gle/NiS8cBk8DUwHDpqu5)

Alessio

Federico Maroncelli

unread,
Jul 19, 2022, 6:56:29 AM7/19/22
to manydesigns-portofino-italian
ok grazie delle Riposte.
Altra domanda: Una volta loggato, non è possibile recuperare il nome utente ( prettyname) e con javascript + php inserirlo nel DB?
La difficoltà mia è appunto recuperare il nome dell'utente loggato.

Grazie
Spero di essere stato chiaro.

Federico

Alessio Stalla

unread,
Jul 20, 2022, 4:41:24 AM7/20/22
to manydesigns-po...@googlegroups.com
Ciao,

beh quello dipende da come è strutturata l'applicazione, in che modo la app php+js interagisce con Portofino.

In linea di massima sul 4 puoi fare una jsp che stampi il nome utente, prendendo spunto dalla jsp predefinita che mostra il menu (mi pare di ricordare che fosse nell'header ma sono anni che non lavoro con Portofino 4). Altrimenti un metodo rest alla Portofino 5, tolta la parte JWT che nel 4 non c'è, puoi prendere spunto da qui: https://github.com/ManyDesigns/Portofino/blob/7a6ebd875bed17d345605085cee3e35a40141838/security-shiro/src/main/java/com/manydesigns/portofino/resourceactions/login/DefaultLoginAction.java#L175-L201 e poi metterlo in qualsiasi action.groovy (probabilmente nella action di login è dove ha più senso ma non è obbligatorio metterlo lì). Chiaramente qualsiasi metodo scegli avrà bisogno della sessione HTTP dell'utente quindi se la chiamata viene da un'altra applicazione devi aver strutturato il tutto in modo che la sessione sia in qualche modo condivisa.

Federico Maroncelli

unread,
Jul 21, 2022, 3:33:56 AM7/21/22
to manydesigns-portofino-italian
Ciao Alessio, se invece volessi stampare un altro campo, oltre alla Username dalla tabella utenti? 
Ho provato a inserire nel Security.groovy questo: 

 
protected String userNameProperty = "cod";

String getUserPrettyCod(Serializable user) {
        if(StringUtils.isEmpty(user CodProperty)) {
            return user.toString();
        }
        return user[user CodProperty];
    }

e nella JSP custom questo:
String prettyCod = ShiroUtils.getPortofinoRealm(). getUserPrettyCod ((Serializable) principal);

Però ricevo Errore HTTP Status 500 - Unable to compile class for JSP:


Grazie

Alessio Stalla

unread,
Jul 21, 2022, 4:31:48 AM7/21/22
to manydesigns-po...@googlegroups.com
getPortofinoRealm() non è direttamente il Security.groovy, è un wrapper scritto in Java, che quindi non avrà i metodi che aggiungi al Security.groovy. Ma non c'è alcun bisogno di aggiungere metodi a Security.groovy, puoi mettere il codice equivalente direttamente nella JSP, o in una classe Java di utilità.

Reply all
Reply to author
Forward
0 new messages