Thelepest / syncopeProject

0 stars 0 forks source link

Nuovo servizio REST #3

Open ilgrosso opened 1 year ago

ilgrosso commented 1 year ago

L'esercizio diceva:

Aggiungere un servizio REST in GET che risponda un payload JSON costante

Vedo il nuovo servizio REST che però è semplicemente la copia di quello del mio post.

Il nuovo servizio fa implementato secondo le specifiche qua sopra, aiutandosi con il post per capire come si aggiunge un servizio REST.

Thelepest commented 1 year ago

Sto iniziando a implementare il nuovo REST, non l'ho ancora fatto. Ho messo quello tuo come esempio sul mio progetto per vedere come funzionasse

Thelepest commented 1 year ago

[04d20e0](url)

Ho committato il nuovo endpoint per restituire la lista degli users, sulla base delle indicazioni che ho trovato sul tuo blog. Ho provato ad aprire swagger per testare l'endpoint, ma quando vado su : http://localhost:9080/syncope/swagger/ Mi esce la pagina del tomcat con 404 - Not Found.

Inoltre, quando provo ad autenticarmi nella pagina dell'Admin Console : http://localhost:9080/syncope-console/login?2

Inserendo le credenziali (corrette), il messaggio che mi esce sempre è : Session expired: please login again Cerco di capirne il motivo, nel frattempo riesci a verificare se l'endpoint che ho fatto è corretto? Grazie

ilgrosso commented 1 year ago

Ho provato ad aprire swagger per testare l'endpoint, ma quando vado su :

Questo è perché in Syncope 2.1 Swagger UI è un'estensione, e quindi per averla devi includere il profilo all sia durante la compilazione che l'avvio - vedi https://syncope.apache.org/docs/2.1/getting-started.html#embedded-mode

Inserendo le credenziali (corrette), il messaggio che mi esce sempre è : Session expired: please login again

devi guardare i log per capire cosa c'è che non va

nel frattempo riesci a verificare se l'endpoint che ho fatto è corretto?

non ho avuto ancora modo di far partire il progetto, ma guardando il codice più o meno ci siamo - directory target ancora in giro a parte

l'esercizio richiedeva un "payload JSON costante" cioè qualcosa del tipo

{
"message": "whatever"
}

quello che hai fatto tu è prendere l'output di un DAO: se questo era lo scopo, ci sarebbero altre cosette da sistemare, ma per ora va bene comunque

Ti faccio sapere quando do un'occhiata più approfondita.

Thelepest commented 1 year ago

Non ero sicuro del "costante", ed ho preferito fare qualcosa di più "realistico". Stamattina sono un pò impegnato anche io, ti scrivo qui appena farò dei progressi, sulla base delle tue indicazioni.

Thelepest commented 1 year ago

Ho proceduto a fare quello che mi hai detto, secondo la guida, ovvero includere il profilo all facendo :

dalla main directory del progetto : mvn -P all clean install dalla cartella enduser : mvn -P embedded,all

Lo swagger ora carica l'head correttamente (vedo titolo e iconcina) ma la pagina la vedo completamente vuota.

Per quanto riguarda la login dentro la admin console, la console.log (del package "console") mi ha fornito questo errore :

12:52:03.510 ERROR org.apache.syncope.client.console.SyncopeConsoleRequestCycleListener - Exception found org.apache.wicket.core.request.mapper.StalePageException: A request to page '[Page class = org.apache.syncope.client.console.pages.Login, id = 3, render count = 4]' has been made with stale 'renderCount'. The page will be re-rendered.

ilgrosso commented 1 year ago

Ho risolto i problemi Maven principali in fe2c754311c29102a18f11728d72de4d21122f70 e adesso riesco ad entrare nella Console come admin.

Il nuovo endpoint non è visible in Swagger UI perché la relativa dipendenza non è stata aggiunta al modulo core: come potrebbe sapere quindi che tale nuovo servizio esiste?

Thelepest commented 1 year ago

Aggiungendo le dipendenze dei (due) endpoint al core ottengo l'errore che riporto, quando apro la console. (non ho ancora pushato questa modifica, e sto ancora provando a risolverlo)

HTTP Status 500 – Internal Server Error Type Exception Report

Message Unable to instantiate web session class org.apache.syncope.client.console.SyncopeConsoleSession

Description The server encountered an unexpected condition that prevented it from fulfilling the request.

Exception

org.apache.wicket.WicketRuntimeException: Unable to instantiate web session class org.apache.syncope.client.console.SyncopeConsoleSession org.apache.wicket.authroles.authentication.AuthenticatedWebApplication.newSession(AuthenticatedWebApplication.java:121) org.apache.wicket.Application.fetchCreateAndSetSession(Application.java:1557) org.apache.wicket.Session.get(Session.java:176) org.apache.syncope.client.console.SyncopeConsoleSession.get(SyncopeConsoleSession.java:125) org.apache.syncope.client.console.SyncopeConsoleRequestCycleListener.onException(SyncopeConsoleRequestCycleListener.java:73) org.apache.wicket.request.cycle.RequestCycleListenerCollection$4.notify(RequestCycleListenerCollection.java:126) org.apache.wicket.request.cycle.RequestCycleListenerCollection$4.notify(RequestCycleListenerCollection.java:122) org.apache.wicket.util.listener.ListenerCollection.notify(ListenerCollection.java:80) org.apache.wicket.request.cycle.RequestCycleListenerCollection.onException(RequestCycleListenerCollection.java:121) org.apache.wicket.request.cycle.RequestCycleListenerCollection$4.notify(RequestCycleListenerCollection.java:126) org.apache.wicket.request.cycle.RequestCycleListenerCollection$4.notify(RequestCycleListenerCollection.java:122) org.apache.wicket.util.listener.ListenerCollection.notify(ListenerCollection.java:80) org.apache.wicket.request.cycle.RequestCycleListenerCollection.onException(RequestCycleListenerCollection.java:121) org.apache.wicket.request.cycle.RequestCycle.handleException(RequestCycle.java:379) org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:325) org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:260) org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:276) org.apache.wicket.protocol.ws.AbstractUpgradeFilter.processRequestCycle(AbstractUpgradeFilter.java:66) org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:207) org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:306) Root Cause

java.lang.reflect.InvocationTargetException sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) java.lang.reflect.Constructor.newInstance(Constructor.java:423) org.apache.wicket.authroles.authentication.AuthenticatedWebApplication.newSession(AuthenticatedWebApplication.java:117) org.apache.wicket.Application.fetchCreateAndSetSession(Application.java:1557) org.apache.wicket.Session.get(Session.java:176) org.apache.syncope.client.console.SyncopeConsoleSession.get(SyncopeConsoleSession.java:125) org.apache.syncope.client.console.SyncopeConsoleRequestCycleListener.onException(SyncopeConsoleRequestCycleListener.java:73) org.apache.wicket.request.cycle.RequestCycleListenerCollection$4.notify(RequestCycleListenerCollection.java:126) org.apache.wicket.request.cycle.RequestCycleListenerCollection$4.notify(RequestCycleListenerCollection.java:122) org.apache.wicket.util.listener.ListenerCollection.notify(ListenerCollection.java:80) org.apache.wicket.request.cycle.RequestCycleListenerCollection.onException(RequestCycleListenerCollection.java:121) org.apache.wicket.request.cycle.RequestCycleListenerCollection$4.notify(RequestCycleListenerCollection.java:126) org.apache.wicket.request.cycle.RequestCycleListenerCollection$4.notify(RequestCycleListenerCollection.java:122) org.apache.wicket.util.listener.ListenerCollection.notify(ListenerCollection.java:80) org.apache.wicket.request.cycle.RequestCycleListenerCollection.onException(RequestCycleListenerCollection.java:121) org.apache.wicket.request.cycle.RequestCycle.handleException(RequestCycle.java:379) org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:325) org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:260) org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:276) org.apache.wicket.protocol.ws.AbstractUpgradeFilter.processRequestCycle(AbstractUpgradeFilter.java:66) org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:207) org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:306) Root Cause

javax.xml.ws.WebServiceException: Remote exception with status code: NOT_FOUND org.apache.syncope.client.lib.RestClientExceptionMapper.fromResponse(RestClientExceptionMapper.java:76) org.apache.syncope.client.lib.RestClientExceptionMapper.fromResponse(RestClientExceptionMapper.java:42) org.apache.cxf.jaxrs.client.ClientProxyImpl.checkResponse(ClientProxyImpl.java:422) org.apache.cxf.jaxrs.client.ClientProxyImpl.handleResponse(ClientProxyImpl.java:1002) org.apache.cxf.jaxrs.client.ClientProxyImpl.doChainedInvocation(ClientProxyImpl.java:907) org.apache.cxf.jaxrs.client.ClientProxyImpl.invoke(ClientProxyImpl.java:345) com.sun.proxy.$Proxy206.platform(Unknown Source) org.apache.syncope.client.console.SyncopeConsoleSession.(SyncopeConsoleSession.java:136) sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) java.lang.reflect.Constructor.newInstance(Constructor.java:423) org.apache.wicket.authroles.authentication.AuthenticatedWebApplication.newSession(AuthenticatedWebApplication.java:117) org.apache.wicket.Application.fetchCreateAndSetSession(Application.java:1557) org.apache.wicket.Session.get(Session.java:176) org.apache.syncope.client.console.SyncopeConsoleSession.get(SyncopeConsoleSession.java:125) org.apache.syncope.client.console.SyncopeConsoleRequestCycleListener.onException(SyncopeConsoleRequestCycleListener.java:73) org.apache.wicket.request.cycle.RequestCycleListenerCollection$4.notify(RequestCycleListenerCollection.java:126) org.apache.wicket.request.cycle.RequestCycleListenerCollection$4.notify(RequestCycleListenerCollection.java:122) org.apache.wicket.util.listener.ListenerCollection.notify(ListenerCollection.java:80) org.apache.wicket.request.cycle.RequestCycleListenerCollection.onException(RequestCycleListenerCollection.java:121) org.apache.wicket.request.cycle.RequestCycleListenerCollection$4.notify(RequestCycleListenerCollection.java:126) org.apache.wicket.request.cycle.RequestCycleListenerCollection$4.notify(RequestCycleListenerCollection.java:122) org.apache.wicket.util.listener.ListenerCollection.notify(ListenerCollection.java:80) org.apache.wicket.request.cycle.RequestCycleListenerCollection.onException(RequestCycleListenerCollection.java:121) org.apache.wicket.request.cycle.RequestCycle.handleException(RequestCycle.java:379) org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:325) org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:260) org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:276) org.apache.wicket.protocol.ws.AbstractUpgradeFilter.processRequestCycle(AbstractUpgradeFilter.java:66) org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:207) org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:306)