기초지식25 Spring Security란 ? ▏시작하는 말 Spring Security 를 알게 된 배경은 JWT를 사용해보고자 찾다보니 Spring Security 에서 JWT 구현하는 글들이 많이 있어 알게되었다. 그래서 두가지 개념을 먼저 공부하게 되었고, 지금은 프로젝트에 적용하는 중이다. 오늘은 내가 공부한 개념에 대해서 설명하도록 하겠다. JWT에 대한 개념이 궁금하다면 JWT란 ? 게시글을 참고하면 된다. ▏Spring Security 란 ? Spring Security는 스프링 기반의 애플리케이션의 보안(인증, 인가, 권한 등)을 담당하는 스프링 하위 프레임워크다. # 인증 (Authenticate, 누구인지) 접근하려는 유저가 누구인지 확인하는 절차 # 인가 (Authorization, 어떤 것을 할 수 있는지) 인증된 사용자가 요.. 2023. 4. 26. Cookie / Session / Token 이란 ? ▏시작하는 말 그간 사이드 프로젝트를 진행하면서 보안에 대해 신경 쓸 생각을 하지 못했다. 아니, 더 솔직히는 중요함을 알면서도 귀찮아 생각하고 싶지 않았던 것이다. 그저 쉬운 방법인 세션 쿠키방식으로 구현했고, 사용하면서도 개념을 제대로 이해하려는 노력조차 없었다. 회사를 다니다 보니 보안에 대해 조금 더 깊게 생각해보게 되었고 그렇게 틈틈이 공부한 내용을 설명해보고자 한다. ▏인증 방식 HTTP는 stateless 성질로, 본래 정보를 유지하지 않는다. 클라이언트와 서버 사이에 통신이 필요할 때 그 순간 요청 / 응답을 하고, 완료되었다면 연결이 끊겨(connectionless) 매번 새로운 요청을 해야한다. 이는 HTTP 가 인터넷상에서 불특정 다수와 연결해야 하는 환경을 만들기 위해 설계되었기 때.. 2023. 4. 23. JWT (Json Web Token) 란 ? ▏시작하는 말 업무 회의 시간에 JWT란 것을 처음 알게 되었는데, 지금 만들고 있는 사이드 프로젝트에 적용하면 좋을 것 같아 소스 분석 및 개발을 진행하며 알게된 내용을 정리하고자 한다. 단순 jwt만 사용한 것이 아닌 jwt와 spring security를 접목시켜 개발했다. 예제 소스를 확인하고자 한다면 yujin's github 를 참고하길 바란다. 설명하기에 앞서 서버가 클라이언트 인증하는 방식에 대해 먼저 공부하고 오면 좋다. 이는 Cookie / Session / Token 이란 ? 게시글을 참고하면 된다. ▏JWT 란 ? Token 인증 방식 중 가장 널리 알려진 방법이 바로 JWT(Json Web Token) 이다. 이름에서 알 수 있듯이 JSON 객체를 사용하여 토큰 자체에 정보를 저장.. 2023. 4. 23. [Eclipse] No matching variant of org.springframework.boot:spring-boot-gradle-plugin:3.0.1 was found. 에러 해결 방법 ▏상황 이클립스로 spring boot gradle 프로젝트 생성시에 'No matching variant of org.springframework.boot:spring-boot-gradle-plugin:3.0.1 was found.' 라는 에러가 발생했다. ▏에러 로그 NoMatchingConfigurationSelectionException: No matching variant of org.springframework.boot:spring-boot-gradle-plugin:3.0.1 was found. The consumer was configured to find a runtime of a library compatible with Java 16, packaged as a jar, and .. 2023. 1. 2. [Java] java.lang.NoClassDefFoundError: sun/io/ByteToCharConverter:sun/io/ByteToCharConverter 에러 해결 방법 ▏상황 내가 맡고있는 업체에서, 우리 회사 솔루션을 사용하던 중 에러가 발생하여 문의를 준 것이 바로 java.lang.NoClassDefFoundError: sun/io/ByteToCharConverter:sun/io/ByteToCharConverter 이다. 에러 발생 환경을 간단히 설명하자면, 리눅스 환경에서 우리 솔루션을 사용하여 db에 연결하고 select 문을 테스트 후 rollback 하는 것인데, 그 과정에서 에러가 발생한 것이다. 에러를 찾아보니, 자바 버전 7.2.x 버전 이후 부터는 ByteToCharConverter.class 가 빠져있는 것이다. ▏에러 로그 java.lang.NoClassDefFoundError: sun/io/ByteToCharConverter:sun/io/B.. 2022. 7. 28. [Eclipse] javax.servlet import 에러 해결 방법 ▏상황 이클립스에서 HttpServlet, ServletInputStream 등 servelet 패키지를 사용하려던 중 javax.servlet import 가 안되는 현상이 발생했다. ▏해결방법 javax 는 java 의 확장 팩이라고 생각하면 된다. 이런 javax 에서 import 에러가 나는 이유는 해당 프로젝트에 Server 라이브러리 설정이 되어있지 않아서 생기는 것이다. 라이브러리 추가만 하면 손쉽게 해결된다. 1. 프로젝트 우클릭 후 properties 클릭 2. Java Build Path > Libraries > Add Library... 3. Server Runtime 클릭 4. 원하는 server 선택후 Finish 5. 제대로 추가 됐는지 확인 후 Apply.. 2022. 7. 5. [Eclipse] Port 8080 required by Project is already in use 에러 해결 ▏상황 이클립스에서 프로젝트를 진행하다보면 종종 8080 포트가 사용중이라는 에러가 발생한다. ▏에러 로그 Port 8080 required by {project} is already in use. The server may already be running in another process, or a system process may be using th port. To start this server you will need to stop the other process or change the port number(s). ▏해결방법 이미 8080포트를 사용중이기 때문에 나는 에러이다. 경우에 따라 2가지 방법이 있다. 1. 기존 서버 죽이고 새롭게 실행 하는 경우 해당 포트를 사용중인.. 2022. 7. 4. [JAVA] Failed to create folder. java.io.IOException : 그런 파일이나 디렉터리가 없습니다. 에러 해결 ▏상황 회사에서 내가 맡고있는 업체에서 아래와 같은 에러가 나 처리해달라는 문의가 왔다. Failed to create folder. java.io.IOException ▏에러 로그 Failed to create folder.java.io.IOException : 그런 파일이나 디렉터리가 없습니다. at java.io.UnixFileSystem.createFileExclusively(UnixFileSystem.java -2) at java.io.File.createNewFile(File.java:1012) ▏해결방법 에러 로그를 보면 알 수 있듯이, 폴더 생성에 실패한 것이다. 이유는 크게 두가지가 있다. 1. 코드 상의 오류 말 그대로 코드를 잘못 짰기 때문에 파일 생성을 할 수 .. 2022. 7. 1. [JAVA] SMTP Mail 기능 구현 : javax.mail.AuthenticationFailedException: 535-5.7.8 Username and Password not accepted 에러 해결 ▏에러 로그 Mail 기능 구현 하던 중 아래와 같은 에러가 발생했다. javax.mail.AuthenticationFailedException: 535-5.7.8 Username and Password not accepted. Learn more at 535 5.7.8 https://support.google.com/mail/?p=BadCredentials t22-20020a17090ae51600b001ecaa74f8dasm4309868pjy.11 - gsmtp at com.sun.mail.smtp.SMTPTransport$Authenticator.authenticate(SMTPTransport.java:648) ▏원인 찾아보니 내가 보내고자 하는 메일 계정에 대해 "보안 수준이 낮은 앱 액세스.. 2022. 6. 23. 이전 1 2 3 다음