SUPPORT-8643: Fix
This commit is contained in:
parent
e790011d1d
commit
9373e897c4
3 changed files with 25 additions and 29 deletions
|
|
@ -40,9 +40,8 @@ public class EsiaController {
|
||||||
|
|
||||||
@GetMapping(value = "/esia/auth")
|
@GetMapping(value = "/esia/auth")
|
||||||
public void esiaAuth(@RequestParam(value = "code", required = false) String code,
|
public void esiaAuth(@RequestParam(value = "code", required = false) String code,
|
||||||
@RequestParam(value = "error", required = false) String error, HttpServletRequest request,
|
|
||||||
HttpServletResponse response) {
|
HttpServletResponse response) {
|
||||||
esiaAuthService.authEsiaTokensByCode(code, error, request, response);
|
esiaAuthService.authEsiaTokensByCode(code, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping(value = "/esia/refresh")
|
@RequestMapping(value = "/esia/refresh")
|
||||||
|
|
|
||||||
|
|
@ -152,11 +152,7 @@ public class EsiaAuthService {
|
||||||
return uriBuilder.toString();
|
return uriBuilder.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void authEsiaTokensByCode(String esiaAuthCode, String error,
|
public void authEsiaTokensByCode(String esiaAuthCode, HttpServletResponse response) {
|
||||||
HttpServletRequest request, HttpServletResponse response) {
|
|
||||||
if (error != null && !error.equals("null")) {
|
|
||||||
throw new EsiaException(error);
|
|
||||||
}
|
|
||||||
String esiaAccessTokenStr = null;
|
String esiaAccessTokenStr = null;
|
||||||
String prnOid = null;
|
String prnOid = null;
|
||||||
Long expiresIn = null;
|
Long expiresIn = null;
|
||||||
|
|
|
||||||
|
|
@ -30,37 +30,38 @@ export abstract class AuthGuard implements CanActivate {
|
||||||
if (isAccess) {
|
if (isAccess) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (code || error) {
|
if (error) {
|
||||||
const params = new HttpParams().set('code', code).set('error', error);
|
let errorMessage =
|
||||||
|
'Произошла неизвестная ошибка. Обратитесь к системному администратору';
|
||||||
|
let errorCode = this.extractCode(errorDescription);
|
||||||
|
if (errorCode) {
|
||||||
|
errorMessage = EsiaErrorDetail.getDescription(errorCode);
|
||||||
|
}
|
||||||
|
let consoleError = error + ', error description = ' + errorDescription;
|
||||||
|
this.messageService.error(errorMessage);
|
||||||
|
console.error(consoleError);
|
||||||
|
}
|
||||||
|
if (code) {
|
||||||
|
const params = new HttpParams().set('code', code);
|
||||||
this.httpClient.get("esia/auth",
|
this.httpClient.get("esia/auth",
|
||||||
{
|
{
|
||||||
params: params, responseType: 'text', observe: 'response', headers: {
|
params: params,
|
||||||
|
responseType: 'text',
|
||||||
|
observe: 'response',
|
||||||
|
headers: {
|
||||||
"Error-intercept-skip": "true"
|
"Error-intercept-skip": "true"
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.toPromise()
|
.toPromise()
|
||||||
.then(
|
.then(
|
||||||
(response) => {
|
() => {
|
||||||
window.open(url.origin + url.pathname, "_self");
|
window.open(url.origin + url.pathname, "_self");
|
||||||
})
|
})
|
||||||
.catch((reason) => {
|
.catch(reason => {
|
||||||
let errorMessage = reason.error.messages != null
|
const json = JSON.parse(reason.error);
|
||||||
? reason.error.messages
|
json.messages.forEach((errorMessage) => {
|
||||||
: reason.error.replaceAll('\\', '');
|
this.messageService.error(errorMessage, json);
|
||||||
if (error) {
|
});
|
||||||
errorMessage = 'Произошла неизвестная ошибка. Обратитесь к системному администратору';
|
|
||||||
let errorCode = this.extractCode(errorDescription);
|
|
||||||
if (errorCode) {
|
|
||||||
errorMessage = EsiaErrorDetail.getDescription(errorCode);
|
|
||||||
}
|
|
||||||
let consoleError = error + ', error description = ' + errorDescription;
|
|
||||||
this.messageService.error(errorMessage);
|
|
||||||
console.error(consoleError);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
this.messageService.error(errorMessage);
|
|
||||||
console.error(reason);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue