Поскольку я решаю проблему CORS в JavaEE и Угловой

У меня есть проблема CORS, что у меня нет идеи, откуда он происходит, я создаю услугу REST в Хаваее (Glassfish) и считаю Front Угловой app тратя упомянутую услугу, тестирую удостоверение из-за token с книжным магазином JJWT, до настоящего времени создал Token и остальные операции token и у меня не была проблема, угловой app делает просьбы в услугу и этот отвечает, НО, я не посылаю token в заголовке и это, потому что каждый раз, когда я верю в HttpHeaders в угловом и это добавляю к просьбе Http, что сервер возвращает мне ошибку CORS.

Мой Угловой код - следующий:

getProductoIndividual():Observable
{
     console.log("getProductoIndividual", 'Authorization' + ':'  + 'Bearer ' + localStorage["clave"]);

     const header = new HttpHeaders({
                   'Authorization' : 'Bearer ' + localStorage["clave"]
                   });

     return this.http.get("http://localhost:8080/PruebaCuatro/api/persona/3", { headers : header });
 }

Если я удаляю второй параметр операции GET, тогда просьба функционирует совершенно, но если я это оставляю, как они это оценивают там, сервер бросает мне ошибку CORS.

Мой код JavaEE - следующий:

@GET
@Path("{id}")
@Produces({MediaType.APPLICATION_JSON})
public Response findModificado(@PathParam("id") Long id, @Context             HttpHeaders headers) throws UnsupportedEncodingException
{

    String jwt = "TTOOKKEENN";
    JsonObject json;
    List authorizationHeader = headers.getRequestHeader("Authorization");

    String authString = null;

    if(authorizationHeader == null  || authorizationHeader.isEmpty())
    {
        authString = "NULO";            
    }
    else
    {
        authString = authorizationHeader.get(0);        
    }

    String email = null;
    String sujeto = null;
    Date iat = null;
    Date exp = null;

    try
    {

         Jws claims = Jwts.parser().setSigningKey("mi_clave").parseClaimsJws(jwt);

         sujeto = claims.getBody().getSubject();             
         email = claims.getBody().get("email", String.class);
         iat = claims.getBody().getIssuedAt();
         exp = claims.getBody().getExpiration();

         json = Json.createObjectBuilder().add("email", email)
                                            .add("sujeto", sujeto)
                                            .add("iat", iat.toString())
                                            .add("exp", exp.toString())
                                            .add("Authorization", authString)
                                            .build();

    } catch(SignatureException e)
    {
        json = Json.createObjectBuilder().add("LLAVE_ERRONEA", "La firma no correponde").build(); 
    }  
    catch(ExpiredJwtException e)
    {
        json = Json.createObjectBuilder().add("LLAVE_ERRONEA", "La llave expiro").build();            
    }

 return Response.status(Response.Status.CREATED).entity(json)
                    .header("Access-Control-Allow-Origin", "*").build();

 }

РАССУЖДЕНИЯ: Очевидно цепь TTOOKKEENN не действительно в коде, в моем коде, если есть реальный token, я это осветляю, но это не составляет часть проблематики действительно. Я использую сервер GlassFish и не использую никакого framework JavaEE, АБСОЛЮТНО НИКАКОЙ FRAMEWORK, это просто код JavaEE, и который был произведен в большинстве своем Netbeans, и я это изменил, у него есть связь JPA, но это другая история. Также я не использую maven.

Также попробуйте использовать в угловом истребителя - перехватчика, но я получил тот же результат (ошибка CORS).

Предупреждение, которое я получаю от сервера, - следующее:

Блокированный запрос о перекрещенном источнике: Та же исходная политика не позволяет чтение удаленных ресурсов в http://localhost:8080/PruebaCuatro/api/persona/3. (Разум: Заголовок CORS 'Access-Control-Allow-Origin' не представил)

Где был бы должен идти Access-Control-Allow-Origin? вопрос кажется глупым, но - что уже не, что больше делать и как мудрецы говорят, что нет глупых вопросов а глупцов, которые не спрашивают, так как там также их оставила эта.

Я надеюсь, что они могут помогать мне. Во мне казаться проблемой находится в угловом header, я читаю их.

Конечно, когда выполнила та же API унифицированный указатель ресурса с тем же параметром Authorization seteado в Bearer TTOOKKEENN в POSTMAN или других программное обеспечение, чтобы тестировать API REST тогда, если оно функционирует как он должен быть, поэтому моя теория, которой проблема эта в Угловом.

Очевидно я должен решать проблему, чтобы мочь осуществлять удостоверение из-за Token в системе.

Книжные магазины, которые я использую в JavaEE:

  • свитер - bundle-1.19.1.jar
  • jackson-all-1.9.0.jar
  • jjwt-0.6.0.jar

1
задан 29.05.2018, 14:58
2 ответа

В твоем классе configuraciГіn, или где ты используешь ее extensiГіn WebSecurityConfigurerAdapter , добавь их следующий mГ©todos.

@Bean
    public WebMvcConfigurer corsConfigurer() {
        return new WebMvcConfigurerAdapter() {
            @Override
            public void addCorsMappings(CorsRegistry registry) {
                registry.addMapping("/**").allowedOrigins("http://localhost:4200");

            }           

        };          
    }


    @Override
    public void configure(WebSecurity web) throws Exception {
        super.configure(web);
    }  
0
ответ дан 20.11.2019, 08:33
  • ВїEstГЎs используя Спринг?
  • ВїHas, протестированный с этикеткой @CrossOrigin в твоем драйвере?

В ней mayorГ - в проектов, мы начинаем тем, что позволяем соглашаться на ресурс с любого места, и например для mГ©todos GET или POST, мы это отмечаем следующей формы:

@CrossOrigin(origins = "*", methods= {RequestMethod.GET,RequestMethod.POST})

Это для разработки очень Гєtil. В производительных средах, ademГЎs ее securizaciГіn от доступа к ресурсам, ты должен помещать в этикетке origins=, откуда ты хочешь позволить, что согласились, она direcciГіn.

ты Надеялся помочь.

0
ответ дан 20.11.2019, 08:33
  • 1
    Спасибо за твой contribució n, помни, что разъяснения на вопросе осуществляются как комментарии, проверять CГіmo отвечать , типы привета. – Jorgesys♦ 19.09.2019, 06:43
  • 2
    @Jorgesys спасибо. Услышанный кухня – Ignacio 19.09.2019, 06:52