Open evchristelis opened 1 year ago
We are actually hitting a similar issue ourselves, but not in all of our apps, and we never managed to debug it.
If you could submit a PR please CC me.
Note that there aren't any real tests in the repo which makes testing any changes hard and thus we can't land something unless it's tested somehow.
Dear @XhmikosR Thank you for the response! We tried many different configurations but none worked. Do you have any workaround? Do you want me to give you any particular configuration for you to test the issue?
Unfortunately, we do not have a Java developer so we could not help you debug this the correct way.
In order to achieve Logout (from gsis at least), you need to do the following:
Με browser redirect – όχι με GET/POST - στο logout url όπου ορίζεται το αντίστοιχο path για να γίνεται redirection σε σελίδα της εφαρμογής-πελάτη. Το αντίστοιχο path της σελίδας θα πρέπει να συμφωνεί με το domain name που έχει δηλωθεί στην ΕΔΑ. Δηλαδή σε url:
@
In order to achieve Logout (from gsis at least), you need to do the following:
Με browser redirect – όχι με GET/POST - στο logout url όπου ορίζεται το αντίστοιχο path για να γίνεται redirection σε σελίδα της εφαρμογής-πελάτη. Το αντίστοιχο path της σελίδας θα πρέπει να συμφωνεί με το domain name που έχει δηλωθεί στην ΕΔΑ. Δηλαδή σε url:
- https://test.gsis.gr/oauth2server/logout/{clientId}/?url=https://xxx.gr/ …. για το πιλοτικό περιβάλλον
- https://www1.gsis.gr/oauth2server/logout/{clientId}/?url=https://xxx.gr/.... για το παραγωγικό περιβάλλον, όπου το τμήμα ‘?url=https://xxx.gr/…’ είναι το redirection url για το logout που θα πρέπει να συμφωνεί με το domain name που έχει δηλωθεί στην ΕΔΑ.
@kmandalas Με την παραπάνω μέθοδο το δοκιμάσαμε στην frontend εφαρμογή μας, αλλά
Το normal flow θα έπρεπε να είναι :
Δυστυχώς αυτό που έχουμε επιτύχει εως τώρα είναι να πάμε μέχρο το βήμα 3.
@evchristelis για το 1, σε περίπτωση χρήσης Java/Spring, επιτυγχάνεται με την δήλωση ενός LogoutSuccessHandler
ως εξής:
OidcClientInitiatedLogoutSuccessHandler oidcLogoutSuccessHandler() {
OidcClientInitiatedLogoutSuccessHandler successHandler =
new OidcClientInitiatedLogoutSuccessHandler(clientRegistrationRepository);
successHandler.setPostLogoutRedirectUri(logoutSuccessUrl);
return successHandler;
}
και δήλωση του handler στο mail HttpSecurity configuration e.g.
.logout(l -> l.logoutUrl("/logout").logoutSuccessHandler(oidcLogoutSuccessHandler()))
Αναφορικά με το 2 τώρα, ναι θα πρέπει να δηλωθεί στην ΓΓΠΣ το URL του frontend app. Που είναι το πρόβλημα εκεί;
@evchristelis για το 1, σε περίπτωση χρήσης Java/Spring, επιτυγχάνεται με την δήλωση ενός
LogoutSuccessHandler
ως εξής:OidcClientInitiatedLogoutSuccessHandler oidcLogoutSuccessHandler() { OidcClientInitiatedLogoutSuccessHandler successHandler = new OidcClientInitiatedLogoutSuccessHandler(clientRegistrationRepository); successHandler.setPostLogoutRedirectUri(logoutSuccessUrl); return successHandler; }
και δήλωση του handler στο mail HttpSecurity configuration e.g.
.logout(l -> l.logoutUrl("/logout").logoutSuccessHandler(oidcLogoutSuccessHandler()))
Αναφορικά με το 2 τώρα, ναι θα πρέπει να δηλωθεί στην ΓΓΠΣ το URL του frontend app. Που είναι το πρόβλημα εκεί;
Δυστυχώς δεν χρησιμοποιούμε Java στην ανάπτυξη και δεν μπορούμε να κάνουμε κάτι αντίστοιχο. Για το 2, δυστυχώς η ΓΓΠΣ μας επιτρέπει να δηλώσουμε μόνο ένα redirect_URL.
Hello, I am facing the following issue. We have implemented the whole flow for the login and registration as per Keycloak guidelines. When we are trying to logout we are having 2 issues;
Is there any specific configuration we need to do to log out of the Keycloak session and the gsis session?