(cherry picked from commit 76da963b902bbd0fc9639aa864f905198a002976)
This commit is contained in:
Eduard Tihomirov 2024-10-24 14:45:44 +03:00
parent 831b3477b7
commit 1b6fbd8683
3 changed files with 24 additions and 7 deletions

View file

@ -25,7 +25,9 @@ public class LogoutSuccessHandler
public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response,
Authentication authentication) throws IOException {
String url = esiaAuthService.logout(request, response);
response.sendRedirect(url);
response.setStatus(HttpServletResponse.SC_OK);
response.getWriter().write(url);
response.getWriter().flush();
CsrfToken csrfToken = this.csrfTokenRepository.generateToken(request);
this.csrfTokenRepository.saveToken(csrfToken, request, response);
}

View file

@ -28,7 +28,9 @@ export class LogOutComponent implements OnInit{
}
logout(): Promise<any> {
return this.httpClient.post<any>('esia/logout', {}).toPromise();
return this.httpClient.post<string>('esia/logout', {}, { responseType: 'text' as 'json' }).toPromise().then(url => {
window.open(url, "_self");
});
}
public getUserFullname(): string {

View file

@ -36,11 +36,24 @@ export abstract class AuthGuard implements CanActivate {
}
else if (code) {
const params = new HttpParams().set('code', code);
this.httpClient.get<boolean>("esia/auth", {params: params}).toPromise().then(
() => window.open(url.origin + url.pathname, "_self"))
.catch((reason) =>
console.error(reason)
);
this.httpClient.get("esia/auth",
{
params: params, responseType: 'text', observe: 'response', headers: {
"Error-intercept-skip": "true"
}
})
.toPromise()
.then(
(response) => {
window.open(url.origin + url.pathname, "_self");
})
.catch((reason) => {
let errorMessage = reason.error.messages != null
? reason.error.messages
: reason.error.replaceAll('\\', '');
this.messageService.error(errorMessage);
console.error(reason);
});
return false;
}
else {