반응형 Kotlin20 Spring Boot REST API Key 만들어서 적용하기 특정 인증키를 사용하여 접근을 하도록 구현 APIKeyAuthFilter import org.springframework.security.web.authentication.preauth.AbstractPreAuthenticatedProcessingFilter import javax.servlet.http.HttpServletRequest class APIKeyAuthFilter(private val principalRequestHeader: String) : AbstractPreAuthenticatedProcessingFilter() { override fun getPreAuthenticatedPrincipal(request: HttpServletRequest): Any { return request.g.. 2022. 11. 15. [Spring Boot] Interceptor로 토큰 검증 적용 중복된 토큰검증코드를 한 번에 검증하기 위해 Interceptor를 사용하였다 Interceptor는 컨트롤러에 들어오는 요청 HttpRequest와 컨트롤러가 응답하는 HttpResponse를 가로채는 역할을 한다 preHandle을 사용하여 컨트롤러가 호출되기 전에 토큰 검증을 하도록 구현하였다 HandlerInterceptor를 상속받는 AuthInterceptor를 구현한다. @NoArgsConstructor class AuthInterceptor :HandlerInterceptor { @Autowired lateinit var memberService: MemberService @Throws(Exception::class) override fun preHandle(request: HttpServ.. 2022. 11. 10. [Spring Boot] AOP 적용하기 Gradle dependency 추가 implementation("org.springframework.boot:spring-boot-starter-aop") AOP를 활성하는 어노테이션 추가 Application 클래스에 추가해준다 @EnableAspectJAutoProxy @SpringBootApplication(exclude = [SecurityAutoConfiguration::class]) class Application fun main(args: Array) { runApplication(*args) } AOP를 처리하기 위한 어노테이션 import java.lang.annotation.ElementType import java.lang.annotation.RetentionPolicy @Targe.. 2022. 11. 1. [Kotlin]CrossOrigin Annotation 여러 origin 사용 CrossOrigin 어노테이션을 사용하다가 한 개의 url이 아닌 여러 개의 url을 사용하는 일이 생겨서 찾아봄 한 개만 사용할 경우 @CrossOrigin("http://localhost:8080") 여러 개 사용할 경우 @CrossOrigin(value = ["http://localhost:8080","http://localhost:8000", "http://localhost:3000"]) 2022. 10. 31. QueryDSL 결과 값이 Null인 경우 다른 값으로 할당 조회한 데이터의 값이 null 일 때 coalesce("대체할 값")을 사용하여 에러를 해결한다 queryFactory.select(member.name.coalesce("")) .from(members) .orderBy(member.id.desc()) .fetch() member 엔티티의 name 값이 null이 있으면 "" 빈 문자열로 출력 2022. 10. 28. [Spring Boot] RestTmplate로 외부 API 통신하기: GET - header, parameter 아무것도 설정하지 않는 경우 fun getList(){ val url = "http://localhost:3000/~~" //외부 api 주소 val restTemplate = RestTemplate() val response = restTemplate.getForObject( url, String::class ) print(response) } Error: I/O error on GET request for http://localhost:3000~~~~ 라는 에러가 뜬다 해결하기 위해서는 gradle에 HttpComponentsClientHttpRequestFactory라이브러리를 추가해준다 https://mvnrepository.com/artifact/org.apa.. 2022. 10. 26. [Kotlin] Thymeleaf을 사용한 html 템플릿 이메일 보내기 2022.09.26 - [Kotlin] - [Kotlin] Spring Boot Email 보내기, 이메일 전송 [Kotlin] Spring Boot Email 보내기, 이메일 전송 ✔의존성 추가 implementation("org.springframework.boot:spring-boot-starter-mail:2.6.7") ✔application.yml mail : host : outbound.daouoffice.com(SMTP host) port : 25 username : 사용자 이메일 password.. eggwhite0.tistory.com 이전 포스팅 글은 그냥 텍스트를 적어서 보냈는데 html 템플릿을 적용해서 보내고 싶으면 간단하게 설정만 하면 된다 ✔ thymeleaf 추가 implem.. 2022. 9. 29. [Kotlin] Spring Boot Email 보내기, 이메일 전송 ✔의존성 추가 implementation("org.springframework.boot:spring-boot-starter-mail:2.6.7") ✔application.yml mail : host : outbound.daouoffice.com(SMTP host) port : 25 username : 사용자 이메일 password : 사용자 비밀번호 properties : mail : smtp : auth : true starttls : enable : false ✔EmailService @Service class EmailService(private val javaMailSender: JavaMailSender) { fun passwordResetRequest(member:Member):Boolean .. 2022. 9. 26. 코틀린(Kotlin) 문자열 랜덤으로 생성, 원하는 길이 만큼의 랜덤한 문자열 만들기 대문자, 소문자, 숫자 3가지를 합쳐서 원하는 길이만큼의 랜덤한 문자열을 생성하는 코드 val charset = ('0'..'9') + ('a'..'z') +('A'..'Z') val rangeRandom = List(10) { charset.random() } .joinToString("") - 길이 10가 10인 랜덤한 숫자가 출력된다 코드에서 숫자 10대신 원하는 길이의 숫자를 써주면 끝 2022. 9. 15. 이전 1 2 3 다음 반응형