스프링프레임워크, 자바 4

스프링 보안 취약점 spring4shell

자바 9 jre9 이상에서 스프링프레임워크 환경에서 제로데이 취약점이 발견되었습니다. https://blog.alyac.co.kr/4601 새로운 Spring Java 프레임워크 제로데이, 원격 코드 실행 허용해 New Spring Java framework zero-day allows remote code execution Spring Core Java 프레임워크의 새로운 제로데이 취약점인 'Spring4Shell'이 공개되었습니다. 해당 취약점은 애플리케이션에서 인증되지 않은.. blog.alyac.co.kr https://tanzu.vmware.com/security/cve-2022-22963 cve-2022-22963 이 그것 인데요 특정 조합에서는 공격자가 post 요청만으로 원격으로 악성 js..

ORM 의 두가지 디자인 패턴

ORM (Object Relational Mapper) 은 객체지향적 프로그래밍에서 객체들의 관계를 설정하여 DB를 관리하는 기술입니다. ORM에는 크게 두가지의 디자인패턴이 있습니다. 자바EE에서 적용된 데이터맵퍼 패턴 루비의 루비온레일즈에 적용된 엑티브레코드 패턴입니다. 소프트웨어 엔지니어인 마틴파울러가 2003년 Patterns of Enterprise Application Architecture 라는 책에서 주장한것입니다. 데이터 맵퍼 패턴 데이터 저장하는 계층(ORM의 일부)과 클래스를 연결하는 맵퍼가 있습니다. 이 맵퍼를 Entity 클래스라고 부릅니다. Entity 클래스에서 DB관련된 작업을 하게됩니다. 장점 1.클래스에서 DB와 관련된 작업이 분리되어 유지관리, 수정이 쉽습니다. 2. 객..

http 응답 BAD REQUEST도 상태코드 200이 뜰때.

@PatchMapping("/content/update") public HttpStatus modifyContent(@RequestBody BoardVO contentVO) { if(boardListService.contentModifyService(contentVO) == 1){ return HttpStatus.OK; }else { return HttpStatus.BAD_REQUEST; } } HttpStatus는 단순히 상태코드를 나타낸다. 이렇게 하면 "OK"라는 문자열이 전송되서 bad_request를 보내도 200이 뜬다. 리턴타입으로 ResponseEntity 객체를 생성해서 return new ResponseEntity (HttpStatus.BAD_REQUEST) 로 상태코드를 보내야한다.

스프링 - 컨트롤러 Missing URI template variable for method parameter

Missing URI template variable for method parameter of type int 에러 컨트롤러에서 URI템플릿에 해당하는 변수명이나 타입이 안맞는다는것 입니다. @GetMapping("/{boardnum}") public BoardVO readContent(@PathVariable int boardnum){ return listService.findByBno(boardnum); } // 오류 URI 템플릿 "{ 변수 }" 와 PathVariable 에 같은 변수명을 써야합니다. @GetMapping("/{boardnum}") public BoardVO readContent(@PathVariable("boardnum") int bno){ listService.findByBn..