RestfulWebService 5

Spring Security

Spring Security 맛보기 org.springframework.boot spring-boot-starter-security 주입하고 메이븐 빌드하고 프로젝트 런을 해보면 콘솔 창에 Using generated security password: 96e68c89-feee-45df-b74e-9bb49be60181 이런 패스워드가 하나 주어진다. Spring Security 를 주입받고 내가 만든 url로 창을 띄워보거나 포스트맨에서 테스트를 해보면 브라우저창 포스트맨 이렇게 로그인 창이 뜨거나 포스트맨에서는 사용자 정보가 뜨지 않고 1만 뜨고 401 권한문제가 뜬다. 이때 아까 콘솔창에 찍혔던 비밀번호를 복사해서 포스트맨의 경우에 Authorization메뉴를 클릭해보면 Type 옆에 셀렉트 박스가 ..

RestfulWebService 2022.09.17

HAL explorer(hal browser)

org.springframework.data spring-data-rest-hal-explorer 3.5.1 주입 후에 http://localhost:8088 을 접속하면 http://localhost:8088/explorer/index.html#uri=/ 에 접속하게 된다. 접속화면이고 맨 위에 Edit Headers에 /actuator을 입력하면 여러 링크들이 있는곳으로 이동하는데 metrics 에 초록색 버튼을 누르면 json형식의 결과가 쭉나온다. Response Body안에 있는 것중에 "jvm.memory.max" 를 복사해서 Edit Headers에 http://localhost:8088/actuator/metrics/jvm.memory.max 넣어주고 Go를 클릭하면 그거에 관련된 정보들이..

RestfulWebService 2022.09.17

JsonFilter

필드 값에 보이지 않게 하고 싶은 데이터가 있을것이다. 예를 들면 회원정보 중에 비밀번호같은건 화면에 보이면 보안상 좋지 않을것이다. 그래서 첫번째 방법으로는 @JsonIgnore private String password; 이렇게 @JsonIgnore를 써서 passowrd필드를 표시되지 않게 가릴수 있다. 저렇게 보여지지 않아야할 필드명 위에 써주면 됨. 두번째 방법은 @Data @AllArgsConstructor @JsonIgnoreProperties(value = {"password", "name"}) @NoArgsConstructor public class User { private Integer id; @Size(min = 2, message = "Name은 2글자 이상 입력해주세요") pri..

RestfulWebService 2022.09.16

HATEOAS

REST API에서 클라이언트에 리소스를 넘겨줄때 특정 부가적인 리소스의 링크 정보를 넘겨주게 되며 이를 통해 REST API의 리소스 상태에 따른 관리를 진행한다. HATEOAS를 쓰는 이유는 기존의 REST API의 단점을 보안하기 위해서 인데 REST API는 앤드포인트 url이 정해지고 나면 변경하기가 어렵다는 단점이 있다. API의 URL을 변경하게 되면 모든 클라이언트의 URL까지 수정해야해서 다른 API를 계속 추가해야해서 URL관리가 어렵게 된다. 그리고 전달받은 정적 자원의 상태에 따른 요소를 서버단에서 구현하기 어렵기 때문에 클라이언트 단에서 이부분에 대한 로직을 처리해야한다. 이러한 단점들을 links요소를 통해 href 값의 형태로 보내주기 때문에 자원 상태에 대한 처리를 링크에 있..

RestfulWebService 2022.09.16

스웨거 생성하기

pom.xml에 io.springfox springfox-boot-starter 3.0.0 주입하고 @Configuration @EnableWebMvc @EnableSwagger2 public class SwaggerConfig { // swagger url = http://localhost:8088/swagger-ui/index.html // api-docs = http://localhost:8088/v2/api-docs @Bean public Docket api() { return new Docket(DocumentationType.SWAGGER_2); } } 설정파일 만들어주면 http://localhost:포트번호/v2/api-docs 에 접속하면 내가 만든 컨트롤러, VO객체 등이 다 나온다. ..

RestfulWebService 2022.09.16