web-dev-qa-db-fra.com

CORS: la réponse à la demande de contrôle en amont ne passe pas la vérification du contrôle d'accès: la redirection n'est pas autorisée pour une demande de contrôle en amont

J'essaie d'intégrer l'application angualar js avec la botte à ressort backend, dans laquelle je fais face à la redirection n'est pas autorisée pour une demande de contrôle en amont

Ceci est déployé sur openshift, j'ai configuré pour activer les cors en ajoutant quelques annotations dans la méthode du contrôleur, ce qui m'a aidé à résoudre l'en-tête: la demande n'a pas d'en-tête "Access-Control-Allow-Origin" dans la demande entrante: problème de stratégie CORS.

    @CrossOrigin(allowedHeaders = "*", origins = "*", exposedHeaders = 
        "Access-Control-Allow-Origin", methods = {
          RequestMethod.POST, RequestMethod.GET, RequestMethod.PUT, 
    RequestMethod.DELETE, RequestMethod.HEAD,
          RequestMethod.OPTIONS, RequestMethod.PATCH, RequestMethod.TRACE })
    @RestController
    public class Controller {

   @Autowired
   Service botService;

   @Autowired
   Environment env;

   @CrossOrigin()
   @RequestMapping(value = "/jwtToken", method = {
                 RequestMethod.POST }, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
   @ResponseStatus(HttpStatus.OK)
   public ResponseEntity<UnifiedService> botConntor(                     
                 @RequestBody UnifiedInput input, HttpServletRequest request) {
          UnifiedBPMService output = botService.processBotRequest(input, request);
          return new ResponseEntity<UnifiedService>(output, HttpStatus.OK);
   }

L'erreur que j'obtiens dans l'application angular angulaire est:

L'accès à XMLHttpRequest sur 'http: /// chatbot/api/jwtToken' depuis l'origine 'http: //' a été bloqué par la stratégie CORS: la réponse à la demande de contrôle en amont ne passe pas la vérification du contrôle d'accès: la redirection n'est pas autorisée pour un contrôle en amont demande.

L'appel d'options a renvoyé la réponse ci-dessous:

    Request URL: http://<domain>/chatbot/api/jwtToken
    Request Method: OPTIONS
    Status Code: 302 Found
    Remote Address: 10.235.222.220:80
    Referrer Policy: no-referrer-when-downgrade
3
KaMaL

Pour Spring Boot, vous devez intégrer un corsFilter à votre configuration de sécurité.

@Bean
CorsConfigurationSource corsConfigurationSource() {
    CorsConfiguration configuration = new CorsConfiguration();
    configuration.setAllowedOrigins(Arrays.asList({YOUR_Origin or just a "*" for testing}));
    configuration.setAllowedMethods(Arrays.asList("GET","POST"));
    configuration.setAllowedHeaders(Arrays.asList({YOUR_ALLOWEDHEADERS}));
    configuration.setAllowCredentials(true);
    UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
    source.registerCorsConfiguration("/**", configuration);
    return source;
}
0
Wassim M'hamdi