2014-04-08 2 views
0

Grails와 함께 제공되는 내장 REST 기능이 동일한 Grails 앱이 다른 시스템의 RESTful API 엔드 포인트를 히트 (효과적으로 REST 클라이언트로 만들기)하고 동일한 API 엔드 포인트를 제공 할 수 있는지 확인하려고합니다. 그래서 다른 컴퓨터에서 공격을받을 수 있습니다 (실제로 REST 서버가됩니다).Grails 앱에 REST 클라이언트와 서버가 동시에 포함될 수 있습니까?

예를 들어 2 개의 Grails 앱, App A 및 App B가 있다고 가정하면 HTTP GET에서 적중 될 때 /ping REST 엔드 포인트가 노출되어 JSON "pong"메시지를 반환합니다. App B의 /ping 종점을 공격 할 수있는 응용 프로그램 A (예 : App B의 App /ping도 공격 할 수 있도록)가 동일한 이름/서명의 종점을 제공하는지 궁금합니다. 나는, 밖으로 Grails의 플러그인에 (/ping에 대한) 추상적 모두 편안하고 클라이언트/서버 기능을 원하는 한 단계 더가는

가장 중요한는 애플 리케이션 A와 B 가져 오기 모두이 플러그인이 다음 grails-pingrest.zip 말을하고, 의존성으로서. 그 방법은 모두 클라이언트 & 서버 구현에 대해 동일한 코드베이스를 공유합니다.

이것이 가능합니까? 그렇다면, 어떻게 그리고 어떤 장애물 /주의 사항/고치기가 있습니까? 그렇지 않다면, 왜?

+1

이 문제가 완전히 일어날 수 있습니다. 플러그인을 사용하는 것도 올바른 접근법입니다. –

+0

감사합니다. @JoshuaMoore (+1) - 동일한 Grails 앱이 포트 8080에서 수신 대기하고'/ ping '요청을 처리하고 다른 컴퓨터의'/ ping에 요청을 보내는 경우 포트 간섭이나 일반적인 통신 문제가 발생합니다. 엔드 포인트. 이러한 유형의 간섭에 대한 의견은 있습니까? – AdjustingForInflation

+1

간섭이 전혀 발생하지 않습니다. 왜 그렇게 될지 전혀 이유가 없습니다. –

답변

1

이 공유 기능을 사용하여 플러그인을 만드는 것은 올바른 길입니다. 동일한 엔드 포인트로 호출하는 것과 동일한 어플리케이션이 동일한 엔드 포인트를 갖는 경우에도 다른 어플리케이션에서 호출하는 데는 아무런 문제가 없습니다.

someplace.com/ping 및 myotherplace.com/ping는 문제가되지 않습니다도 domain.com/appa/ping 및

0

domain.com/appb/ping은 webhook 또는 API를 체인처럼 들리는 것 . Grails API Toolkit은이 두 가지를 모두 지원합니다.

관련 문제