Cool-jconon - Selezioni online

Sì, la nostra installazione si basa su cool-jconon-template. L’unica differenza è che nel docker-compose abbiamo aggiunto la variable ambiente Xmx4g. Ho quindi eseguito quei comandi, ha restituito molti:

alfresco-search-services_1                  | This should only happen if the content has been removed from the Solr content store.
alfresco-search-services_1                  | Recreating cached doc ...
alfresco-search-services_1                  | 2022-09-20 15:51:13.106 WARN  (SolrTrackingPool-archive-ContentTracker-7) [   ] o.a.s.SolrInformationServer There is no cached doc in the Solr content store with tenant [_DEFAULT_] and dbId [59222].
alfresco-search-services_1                  | This should only happen if the content has been removed from the Solr content store.
alfresco-search-services_1                  | Recreating cached doc ...
alfresco-search-services_1                  | 2022-09-20 15:51:13.106 WARN  (SolrTrackingPool-archive-ContentTracker-6) [   ] o.a.s.SolrInformationServer There is no cached doc in the Solr content store with tenant [_DEFAULT_] and dbId [59224].
alfresco-search-services_1                  | This should only happen if the content has been removed from the Solr content store.
alfresco-search-services_1                  | Recreating cached doc ...
alfresco-search-services_1                  | 2022-09-20 15:51:13.108 WARN  (SolrTrackingPool-archive-ContentTracker-8) [   ] o.a.s.SolrInformationServer There is no cached doc in the Solr content store with tenant [_DEFAULT_] and dbId [59230].
alfresco-search-services_1                  | This should only happen if the content has been removed from the Solr content store.
alfresco-search-services_1                  | Recreating cached doc ...

E al termine l’errore bloccante non appare più (ho dovuto riavviare anche cool-jconon).
EDIT: Anche l’altro errore dei bandi cancellati (Cool-jconon - Selezioni online - n°177 da KarimSaad91) è stato risolto! Grazie come sempre per la disponibilità!

Grazie Marco come al solito.
Al momento è stato effettuato un work around di questo tipo:
image

Ciao, comunque non ci sto investendo tempo e risorse su questa parte perchè l’idea era quella di migrare il tutto ad Angular 14, il progetto lo trovi qui GitHub - consiglionazionaledellericerche/selezioni-online ed una demo qui https://selezioni-online.test.si.cnr.it, poi mi sono bloccato nell’attesa di capire le evoluzioni di inPA

1 Mi Piace

Buongiorno Marco,
riprovando la funzionalità di firma, ora non da più errore.

In merito alle Graduatorie:

  • il sistema genera automaticamente un documento e lo posiziona nel repository?
  • nel menù il alto “Graduatorie” i file occorre caricarli manualmente?
  • nel repository Alfresco “Selezioni On-line” la corretta struttura è la seguente
    image
    viene creata in automatico al momento della configurazione del sistema o c’è qualche prerequisito da rispettare?

Grazie in anticipo

Ciao,

  • no, quel menu graduatorie è utilizzato al CNR per pubblicare i bandi che hanno delle graduatorie ancora aperte che i direttori di istituto devono obbligatoriamente consultare prima di emettere un nuovo bando sulla stessa tematica.

  • si, da noi viene fatto dall’ufficio concorsi che aggiorna le informazioni per permettere le valutazioni di cui al punto precedente

  • si, viene creata al setup del sistema

1 Mi Piace

Ciao Marco,
come è possibile gestire l’ordinamento dei campi creati in un nuovo modello?
Va fatto nei types, negli aspects o nei javascript, nel caso in quali?
Grazie
A.

Ciao, se crei il BulkInfo del modello l’ordinamento è assicurato dalla sequenza dei tag “formFieldProperty” come ad esempio puoi notare qui: cool-jconon/esclusioneBulkInfo.xml at master · consiglionazionaledellericerche/cool-jconon · GitHub

se invece il BulkInfo non viene creato ma viene generato partento dal modello di Alfresco allora l’ordinamento viene effettuato in base al contentuto del tag “description” come puoi vedere qui: cool-jconon/jconon_application_folder.xml at master · consiglionazionaledellericerche/cool-jconon · GitHub

1 Mi Piace

Ciao Marco,

in ambiente di test, dove vengono effettuate molte prove, c’è stata la necessità di ricreare l’ambiente docker, lasciando intatto il database. Dopo questa operazione non si riesce a pubblicare nessun bando, restituisce il messaggio di errore “… Bando Incompleto…” .
La proprietà presente per tutti i bandi è “P:sys:incomplete” come da screen, ma nel form di compilazione del bando non sembra esserci nessun campo obbligatorio da compilare.

Potresti indicarci chi gestisce questa proprietà per superare il problema?

Grazie in anticipo

Ciao, mi sembra strano se non è cambiato niente nei modelli di ALfresco, comunque quell’aspect viene aggiunto o rimosso da Alfresco in base alle property mandatory del nodo, ora vedo se trovo una funzionalità di Alfresco che almeno ti dica quale property non è valorizzata.

1 Mi Piace

Ciao, ho creato uno script che puoi eseguire dalla console, che ti mostra le properties obbligatorie del nodo non valorizzate:
var node = search.findNode("workspace://SpacesStore/de67c02d-9586-4199-b2f6-3ced1fbadd1d"), propertyNames = Object.keys(node.getProperties()), i= 0; while (i < propertyNames.length) { if (cnrutils.getBean("dictionaryService").getProperty(cnrutils.executeStatic("org.alfresco.service.namespace.QName.createQName", propertyNames[i])).isMandatory()) { if (node.properties[propertyNames[i]] == null) { logger.info(propertyNames[i]); } } i++; }

2 Mi Piace

Buongiorno Marco,
stiamo tentando di integrare keycloak per l’integrazione dell’accesso CIE al portale.
Abbiamo configurato un’istanza di keycloak e successivamente abbiamo creato e configurato il file yml adattando le variabili realms e auth-server-url:

Adesso il cool-jconon rimanda direttamente a questa pagina di login Please sign in senza permettere la visualizzazione pubblica dei bandi.

Suggerimenti?

Grazie!

Ciao, avete attivato il profilo spring di keycloak?
-Dspring.profiles.active=prod,keycloak

Rispondo io per @KarimSaad91: Sì. Senza quel profilo funziona bene. Da quando viene attivato appare la “misteriosa” pagina di Login.
Tra l’altro, la pagina sembra prodotta internamente da Cool Jconon, non è un redirect a Keycloak (abbiamo anche spento Keycloak e la pagina di login continua ad apparire).

Ciao, il problema è dovuto al fatto che attivando il profilo keycloak avete spento:
cool-jconon/WebSecurityConfig.java at f27412413688b436df427014f5db245df3d36347 · consiglionazionaledellericerche/cool-jconon · GitHub

Al contempo non è attivo:

In quanto dovreste aggiungere come dipendenza il progetto:

perchè di default viene escluso, la maschera di login che vedete è quella standard di spring security

Rimuovendo quella exclusion, il sistema parte, purtroppo però al click del pulsante per l’ingresso appare
{"timestamp":"2022-11-15T09:56:29.523+00:00","status":500,"error":"Internal Server Error","exception":"java.lang.NullPointerException","message":"No message available","path":"/sso/login"}
Per quanto riguarda application-keycloak.yml, dovremmo aver configurato tutto correttamente (parametri esportati direttamente dal realm)
Sembra che non venga caricato questo: cool-jconon/SSOSecurityController.java at f27412413688b436df427014f5db245df3d36347 · consiglionazionaledellericerche/cool-jconon · GitHub
La nostra installazione è basata sul Cool Jconon Template, ci sono altri passaggi per attivare keycloak?

Ciao, potresti mandarmi il dettaglio della risposta, in modo da inviduare il NPE

Certo, ecco le log dell’errore:

[INFO] org.springframework.web.servlet.DispatcherServlet:547 - Completed initialization in 2 ms
[WARN] org.keycloak.adapters.KeycloakDeployment:201 - Failed to load URLs from https://sso.aspbassaromagna.it/realms/bandi/.well-known/openid-configuration
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
	at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1949)
	at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:302)
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:387)
	at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292)
	at sun.security.validator.Validator.validate(Validator.java:260)
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141)
	at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126)
	at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280)
[ERROR] org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/].[dispatcherServlet]:175 - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception
java.lang.NullPointerException: null
	at org.keycloak.adapters.OAuthRequestAuthenticator.getRedirectUri(OAuthRequestAuthenticator.java:175)
	at org.keycloak.adapters.OAuthRequestAuthenticator.loginRedirect(OAuthRequestAuthenticator.java:213)
	at org.keycloak.adapters.OAuthRequestAuthenticator.authenticate(OAuthRequestAuthenticator.java:275)
[WARN] it.cnr.si.cool.jconon.rest.openapi.controllers.IndexController:62 - ERROR Page Controller Status:500 Message:No message available

Ho provato ad accedere a “https://sso.aspbassaromagna.it/realms/bandi/.well-known/openid-configuration” dall’interno del container (tramite wget) e il file viene correttamente scaricato.

Il file contiene alcuni parametri ad es.

   "issuer":"https://sso.aspbassaromagna.it/realms/bandi",
   "authorization_endpoint":"https://sso.aspbassaromagna.it/realms/bandi/protocol/openid-connect/auth",
   "token_endpoint":"https://sso.aspbassaromagna.it/realms/bandi/protocol/openid-connect/token"

Ciao il problema è dovuto al certificato SSL infatti l’errore viene generato da un SSLHandshakeException potresti risolvere importando il certiticato all’interno del container un esempio lo puoi vedere qui:

Grazie mille. Ho capito, è un po’ come il certificato che serve per IO.
Speriamo di poter concludere a breve, ora aspettiamo il lato amministrativo di “onboarding”.

1 Mi Piace

Ciao Marco,
abbiamo completato la parte amministrativa e stiamo testando l’ambiente in preproduzione.
Sembra che keycloak legga correttamente i dati dalla CIE, ma nel reindirizzamento al cool-jconon appare:
{"timestamp":"2022-11-16T11:51:38.063+00:00","status":403,"error":"Forbidden","message":"No message available","path":"/sso/login"}
Nelle log restituisce questo:

[ERROR] org.keycloak.adapters.OAuthRequestAuthenticator:337 - failed to turn code into token
[ERROR] org.keycloak.adapters.OAuthRequestAuthenticator:338 - status from server: 401
[ERROR] org.keycloak.adapters.OAuthRequestAuthenticator:340 -    {"error":"unauthorized_client","error_description":"Invalid client or Invalid client credentials"}
[WARN] it.cnr.si.cool.jconon.rest.openapi.controllers.IndexController:62 - ERROR Page Controller Status:403 Message:No message available

Suggerimenti?
Il nostro dubbio era sulla modifica di questi campi:

al momento sono invariati, tranne il logout_success_url, dobbiamo modificare altro?

Grazie!