어제 업로드에 이어 다운로드입니다. dependency는 https://cusonar.tistory.com/45 글을 참조해주세요. ID는 파일명입니다. 업로드에서 UUID 형식으로 파일을 저장했으므로 UUID를 ID에 넣어주시면 됩니다. FileController.java @RestController @RequestMapping("/files") @Slf4j public class FileController { @Value("${temp.path}") private String tempPath; @GetMapping("/{id}") public Resource download(@PathVariable String id) throws IOException { File file = new File(temp..
안녕하세요, 간만에 기술 글을 올리게 되네요. 다사다난했던 관계로 짬도 안났고, 게으르기도 했구요. 다시 한번 예전으로 돌아가 글을 열심히 써봐야겠어요^^ 오늘은 Spring boot에서 파일 업로드하는 것에 대해서 알아보겠어요. 프로젝트 생성시 Dependency는 Web, Devtools, Lombok 3개만 추가를 합니다. 추가적으로 파일 처리를 위해 Apache commons-io를 추가하겠습니다. build.gradle plugins { id 'org.springframework.boot' version '2.1.5.RELEASE' id 'java' } apply plugin: 'io.spring.dependency-management' group = 'com.cusonar' version = ..
Spring Boot Security 3편입니다. 일단 지난 시간까지 DB의 계정과 패스워드를 비교해서 로그인을 하는 것까지 했습니다. 지금 상태로도 쓸려면 쓸순 있겠지만 만약 해커가 DB를 털었다간 큰일 나겠죠? 사용자 암호가 고스란히 넘어가는거니깐요. 그래서 이번에는 암호를 암호화하는 방법에 대해 진행해볼까 합니다. (암호를 암호화-_-?) 일단은 DB에 암호화된채로 들어가 있어야 사용자가 입력한 패스워드를 암호화 해서 DB와 비교할 수 있습니다. 따라서 사용자를 암호화해서 등록하는 것부터 시작할께요. (4.1 번외가 적용되었다고 가정하겠습니다.) 1. UserService 인터페이스에 유저 등록 메소드를 추가합니다. 유저 등록만 계속 하면 테스트 하기 어려워지므로 삭제 메소드와 읽기 메소드도 같이 ..
지난번 4. Spring Boot Security에서는 Authority를 바로 받아올 수 없어 String으로 받아왔습니다. 이 부분은 왠지 마음에 들지 않습니다. 그래서 TypeHandler를 이용해서 GrantedAuthority를 바로 받아오고, 그로 인해 깔끔해진 코드를 보겠습니다. 1. 먼저 SimpleGrantedAuthority의 TypeHandler를 정의합니다. TypeHandler는 http://www.mybatis.org/mybatis-3/ko/configuration.html#typeHandlers 에 잘 나와 있습니다. 패키지는 config 안에 두겠습니다.package com.cusonar.example.config; import java.sql.CallableStatement..
지난번에는 Spring Boot Security 시작부터 해서 Customizing을 위한 User 생성과 UserMapper 생성까지 했습니다. 일단 User는 이러이러한 필드가 필요하다, 그리고 이것들은 이러한 쿼리로 조회가 가능하다 정도까지 했습니다. 그러면 이번에는 Spring Security에서 실제로 User를 조회하는데 이용하는 UserService를 만들어보고, Config를 통해 Customzing Login을 만들어 보겠습니다. 1. 우선 UserService 인터페이스를 만듭니다. UserService 인터페이스는 UserDetailsService 인터페이스를 상속 받아야 합니다. 이유는 UserDetailsService를 구현해야만 Spring Security에서 정상적으로 조회를 ..
네번째는 기존 프로젝트에 spring security를 적용해보겠습니다. 어떠한 시스템이든지 보안은 필수적인 시대가 되었습니다. Spring Security는 이러한 보안에서 중요한 요소인 인증과 권한 처리를 쉽게 하도록 도와줍니다. 인증은 일반적으로 로그인을 말하고, 권한은 admin과 일반 user 사이에 권한을 달리하여 특정 페이지는 일반 user에게 접속하지 못하도록 막는것을 뜻합니다. Spring Boot에서는 이러한 Security도 간편하게 적용할 수 있습니다. 1. build.gradle 파일의 dependencies에 아래와 같은 dependency를 추가하고 dependency refresh를 통해 security lib를 내려받습니다.compile('org.springframework..
지난 포스팅에서는 MyBatis와 Spring Boot를 연동해봤습니다. 이번에는 MyBatis Config와 Mapper 인터페이스에 있는 쿼리를 XML로 빼내는 방법에 대해서 알아보겠습니다. 1. resource 밑에 mybatis라는 폴더를 만들고, mybatis 폴더 밑에 mapper라는 폴더를 만듭니다. 그리고 mapper 밑에 HomeMapper.xml 파일을 만듭니다. (폴더명은 자유롭게 쓰셔도 됩니다.) SELECT * FROM home WHERE name = #{name} . 기본적인 MyBatis의 mapper 형식입니다. mapper DTD를 선언해주고, namespace는 Mapper 인터페이스와 매핑시켜줍니다. 그러면 HomeMapper 인터페이스에 있는 메소드명과 XML에 있는 ..
웹 개발을 하려면 DB와의 연동이 필수죠? 이번 포스팅에서는 국내에서 가장 흔히 쓰이는 Mybatis를 이용해서 MySQL DB의 데이터를 가져와보겠습니다. 0. 준비물 . MySQL이 설치되어 있어야 합니다. . 테이블 생성: create table home (name varchar(20), message(100)); . 데이터 입력: insert into home values('cusonar', 'Hello'); 1. build.gradle의 dependencies 부분에 아래와 같이 dependency를 추가해줍니다. (자세한건 언젠가 설명할 날이 있겠죠?) . compile은 compile time에 runtime은 runtime 시 필요한 dependency를 추가할 수 있습니다.compile(..
- Total
- Today
- Yesterday
- 기내반입유모차
- RouteConfig
- routeParams
- routerLink
- controller test
- angular
- routing
- spring security
- mockmvc
- 알고리즘
- 어드보케이트
- router-outlet
- 머지소트
- 유아동겸용
- styleUrls
- rest login
- angular2
- 타보유모차
- mybatis
- 티지유모차
- test static import
- 거품정렬
- TypeScript
- Spring Boot
- Ajax
- insert sort
- CURL
- angular 2
- templateUrl
- 빠른 정렬
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |