2017-09-25 10 views
0

봄 부팅 응용 프로그램을 만들고 있습니다. 몇 개의 끝점을 추가하고 있습니다. 이 프로세스에서 일부 끝점은 안전하고 일부 끝은 안전하지 않습니다.Extra 봄 부팅 응용 프로그램에 알 수없는 끝 점이 추가되었습니다.

일단 응용 프로그램이 설치되면 노출되지 않은 응용 프로그램 정보를 제공하는 추가 엔드 포인트를 얻게됩니다.

예 : 노출 된 엔드 포인트의 일부는

@RestController 
@RequestMapping("/category/v1") 
public class ControllerClass { 
    @RequestMapping(value="/pillars", method=RequestMethod.GET) 
    public String pillarGetMethod() { 
     //method 
    } 

    @RequestMapping(value="/frameworks", method=RequestMethod.GET) 
    public String frameworkGetMethod() { 
     //method 
    } 
} 

있습니다 이제 기대는 우리가 가지고있는 것입니다

  • /카테고리/V1/기둥
  • /카테고리/V1/프레임 워크

이 노출 될 것입니다.

그러나

  • /기둥

  • /프레임 워크

또한 나는 또한 어떻게 출력을 이해하는 데 도움이 필요

{ 
    "_embedded" : { 
    "pillars" : [ { 

    } ] 
    }, 
    "_links" : { 
    "self" : { 
     "href" : "http://<ip>/pillars{?page,size,sort}", 
     "templated" : true 
    }, 
    "profile" : { 
     "href" : "http://<ip>/profile/pillars" 
    }, 
    "search" : { 
     "href" : "http://<ip>/pillars/search" 
    } 
    }, 
    "page" : { 
    "size" : 20, 
    "totalElements" : 5, 
    "totalPages" : 1, 
    "number" : 0 
    } 
} 

등의 응답이 노출지고 나는 이것이 노출되는 것을 막을 수있다. 당신이 @RepositoryRestResource(exported = false)와 저장소에 주석을하지 않는

public class PillarRepository extends CrudRepository<Pillar, String> { ... } 

public class FrameworkPillarRepository extends CrudRepository<Pillar, String> { ... } 

그렇다면, 기본 자원, 봄 부팅/봄 데이터 나머지에 의해 자동으로 노출됩니다

+2

CrudRepository를 확장하는 PillarRepository 및 Framework 클래스와 같은 것을 정의 했습니까? 그렇다면, 당신이'@RepositoryRestResource (exported = false)'로 주석을 달지 않는 한, 기본 리소스는 Spring Boot/Spring Data Rest에 의해 자동으로 노출됩니다. –

+0

대단히 감사합니다. @ 마르크. 그것은 그 문제를 해결했습니다. 응답을 응답으로 추가하십시오, 나는 정답으로 응답을 받아들이게 아주 행복 할 것이다. – Shaleen

답변

1

내 생각 엔 당신이 뭔가를 정의합니다.

자동으로 GET 동작을 재현하려는 경우 사용자 지정 경로가있는 경우 path 옵션을 사용하십시오.