У меня есть сценарий, в котором приложение Springboot получает повторный запрос GET [от IBM ISAM] с токеном JWT в заголовке. После получения этого запроса Springboot должен перенаправить его в приложение Angular и передать JWT [в заголовке или в строке запроса].
Я пробую это в Springboot, но в браузере не происходит перенаправление.
@RestController
@RequestMapping(value="/token")
public class RedirectController {
@CrossOrigin
@RequestMapping(value = "/redirect", method = RequestMethod.GET, produces = "application/json")
public ResponseEntity<Object> redirectToAngularApp(@RequestHeader HttpHeaders headerItems) {
System.out.println("Inside redirect....");
System.out.println("Header Content::"+headerItems.toString());
String jwttoken = "";
if (headerItems != null) {
String tokenString = headerItems.getValuesAsList("authorization").get(0);
System.out.println("TOKEN STRING::"+tokenString);
// && headerItems.startsWith("Bearer ")
jwttoken = tokenString.substring(7);
System.out.println("JWT TOKEN::"+jwttoken);
}
HttpHeaders headers = new HttpHeaders();
headers.setAccessControlAllowOrigin("*");
headers.set("Access-Control-Allow-Methods","GET,OPTIONS,HEAD");
headers.set("Access-Control-Allow-Headers", "Authorization");
headers.set("Access-Control-Max-Age","86400");
headers.setLocation(URI.create("http://localhost:4200/#/dpsportal?token="+jwttoken));
return new ResponseEntity<>(headers, HttpStatus.FOUND);
}
}
Я получаю эту ошибку в консоли браузера.
Failed to load http://localhost:4200/#/: Request header field Authorization is not allowed by Access-Control-Allow-Headers in preflight response.
jwt.interceptor.ts:111 ERROR::{"headers":{"normalizedNames":{},"lazyUpdate":null,"headers":{}},"status":0,"statusText":"Unknown Error","url":null,"ok":false,"name":"HttpErrorResponse","message":"Http failure response for (unknown url): 0 Unknown Error","error":{"isTrusted":true}}
login.component.ts:68 TypeError: Observable_1.Observable.throw is not a function
at CatchSubscriber.eval [as selector] (jwt.interceptor.ts:133)
at CatchSubscriber.error (catchError.js:105)
at XMLHttpRequest.onError (http.js:2302)
Пожалуйста, помогите решить эту проблему.