어제 업로드에 이어 다운로드입니다. 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 = ..
지난 포스팅까지해서 Form을 통한 로그인은 구현을 해봤습니다. 완벽하다고는 할 수 없으나 사용하기엔 충분하리라 생각합니다. 하지만 저의 최종 Goal은 Rest Application이므로 로그인도 Rest 방식으로 변경을 해보겠습니다. 우선 SecurityConfig.java를 아래와 같이 수정합니다.package com.cusonar.example.config; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.sprin..
어제 포스팅을 마무리 하지 못해서 오늘 오전에 짬내서 마무리하고 올렸었습니다. 어제 1일1포스팅을 못지켰으므로 오늘 2포스팅을 진행합니다. 이번에는 Spring Security의 기타 기능들에 대해서 살펴보겠습니다. 우선 살펴볼 기능은 Authority 별 접근 권한 설정입니다. 특정 계정의 경우 USER와 ADMIN 두개로 설정을 했었는데요. ADMIN만 접근 가능한 페이지, USER만 접근 가능한 페이지를 설정해보겠습니다. 1. 해당 테스트용 페이지를 만들기 위해서 HomeController에 admin/user Path를 추가해줍니다.package com.cusonar.example.home.controller; import org.springframework.beans.factory.annotat..
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..
- Total
- Today
- Yesterday
- mybatis
- test static import
- 어드보케이트
- routeParams
- insert sort
- 머지소트
- 유아동겸용
- angular2
- angular
- router-outlet
- 기내반입유모차
- Ajax
- CURL
- routerLink
- 티지유모차
- spring security
- rest login
- angular 2
- 타보유모차
- styleUrls
- templateUrl
- routing
- 알고리즘
- Spring Boot
- 거품정렬
- TypeScript
- mockmvc
- 빠른 정렬
- RouteConfig
- controller test
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |