2017-11-24 15 views
0

저는 Java Spring에서 약간 새로운 것 같습니다. 내가하고 싶은 일은 다음과 같습니다 : 일부 제 3자가 "돌아 오는 URL"을 묻는 중이고 다음과 같이 설정합니다 : https://localhost:9002/my-account/order-history 그런 다음 그들은 내게 POST 요청을 보내고 내 컨트롤러 내에서 처리하도록되어 있습니다. . 요청에는 url 매개 변수와 양식 데이터가 모두 있습니다. 이 요청은다른 사이트에서 봄에 POST 요청 수신

Request URL:https://localhost:9002/my-account/order-history?responseCode=0000&token=E0ECFC1214B19E5D11B9B587920FC5F164C5CB17E7DC67F083E0EC6676F79467DFBDF4B6CCF3C39BF47F0232D1AA42F1FA112F29B0157DDF98EE3997F781CCB1FEB070A44E530691BA36674BEA4CF56A4A43F2B9746D9C3591CF288D745A6694 
Request Method:POST 
Status Code:403 Bad or missing CSRF token 
Remote Address:127.0.0.1:9002 
Referrer Policy:no-referrer-when-downgrade 

폼 데이터의 일부입니다 :

내가 attachment로 전체 폼 데이터 및 기타 요청 정보를 추가했습니다. - 나쁜 또는 누락 된 CSRF 토큰 오류

@Controller 
@RequestMapping(value = "/my-account") 
public class MaviAccountPageController extends MaviAbstractController 
{ 
    @RequestMapping(value = "/order-history", method = RequestMethod.POST) 
    public ModelAndView process(@RequestBody final String req) 
    { 
     //consumes = "text/plain" 
     System.out.println(req); 
     System.out.println(req); 
     return new ModelAndView("deneme"); 
    } 
    .... 
} 

을 그리고 난 (403)가 계속 다음과 같이

나는 필사적으로 사용하기 위해 노력하고있어 컨트롤러입니다. 컨트롤러를 어떻게 구현해야합니까? 내가 링크 아래에 체크 한 그들은 불행하게도 작동하지 않았다 : 나는 시도 How to retrieve FORM/POST Parameters in Spring Controller? How to explicitly obtain post data in Spring MVC?

하지만, 우체부에 문제를 다시 생성하지 못했습니다. 계속 진행하는 방법에 대해 누구나 제게 조언 해 주실 수 있습니까?

+0

확인이 https://stackoverflow.com/questions/22555110/csrf-cross-site-request-forgery-protection-in와 방법 주석을 달 수 있습니다 -spring-mvc https://spring.io/blog/2013/08/21/spring-security-3-2-0-rc1-highlights-csrf-protection/ – pvpkiran

+0

확인한 링크는 다음과 관련이 없습니다. 오류가 있습니다. 요청에서 매개 변수를 얻는 방법이 아니라 오류의 의미를 검색해야합니다. –

+0

고맙습니다.하지만 제 3자는 ""행을 양식에 추가하는 것을 거부합니다. @CrossOrigin 주석에 대해서는 아래의 답변을 시도 할 것입니다. –

답변

0

당신은 @CrossOrigin

@CrossOrigin 
@RequestMapping(value = "/order-history", method = RequestMethod.POST) 
public ModelAndView process(@RequestBody final String req) 
{ 
    //consumes = "text/plain" 
    System.out.println(req); 
    System.out.println(req); 
    return new ModelAndView("deneme"); 
} 

https://spring.io/guides/gs/rest-service-cors/

+0

훌륭한 기사를 가져 주셔서 감사합니다. 그러나 hybris는 내 외부 종속성 (hybris의 pom.xml) 아래에 코드를 추가하는 것을 허용하지 않습니다. org.springframework.boot 스프링 부팅 스타터 부모 1.5.8.RELEASE