전체 글 119

JWT 정리, 프론트 연동, role 권한, refresh token

https://wogud.tistory.com/186로그인 기능 자세하게 적어놓음 ( 비밀번호 해싱 ) 1단계: 기본 로그인 기능 및 JWT 발급1.로그인 기능 작성,  JWT 생성 유틸리티 작성 (JwtUtil.java) serviceImpl@Servicepublic class AuthServiceImpl implements AuthService { private final AuthMapper authMapper; private final PasswordEncoder passwordEncoder; @Autowired public AuthServiceImpl(AuthMapper authMapper, PasswordEncoder passwordEncoder) { this.authMapper = auth..

SpringBoot Security 2024.12.20

JWT 기초

1. session 유저가 로그인하면 서버가 유저한테입장권 발급 -> 사이트에서 어떤 행동을 할 때마다 입장권 제출 입장권에 들어가있는 정보가 거의 없음 ( 발급번호 하나 )세션스토어에 있는 발급번호를 조회해서 문제 없으면 통과  2. token입장권에 들어가있는 정보가 많음입장권만 조회하고 문제없으면 통과 => token 방식이 서버에 부담이 덜하다     session은 회원이 많아질수록 부담이 간다. 장점 : 토큰 위변조가 불가능 서버에 토큰 저장할 필요가 없고 검증해서 안전하면 바로 데이터 꺼내쓰면 됌.   jwt는 대충 만들면 심각한 보안이슈가 생김 문제 1 : alg : none 공격  alg를 none으로 변조 후에 변조된 토큰을 사용하면 토큰 자체에 문제가 없다고 판단하고 보안이 뚫리는 경..

SpringBoot Security 2024.12.20

Error creating bean with name 'securityFilterChain' defined in com.example.demo.config.SecurityConfig: Unsatisfied dependency expressed through method 'securityFilterChain'

SecurityConfig 클래스에 있는 securityFilterChain() 메서드는 HttpSecurity를 파라미터로 받음.하지만 AnnotationConfigApplicationContext는 Spring Boot 환경의 HttpSecurity 빈을 관리하지 않음.HttpSecurity는 Spring Security의 웹 환경에서만 사용할 수 있는 객체현재 PasswordHasher는 독립 실행형 애플리케이션이므로 웹 컨텍스트가 로드되지 않아서 HttpSecurity 빈이 주입되지 않는다.  해결방법 : PasswordHasher 클래스는 독립 실행형 유틸리티라서 BCryptPasswordEncoder 를 직접 생성해서 사용하는게 가장 간단하고 깔끔하다.

에러 2024.12.18

CORS, 시큐리티 기본 설정

https://developer.mozilla.org/ko/docs/Web/HTTP/CORS 교차 출처 리소스 공유 (CORS) - HTTP | MDN교차 출처 리소스 공유(Cross-Origin Resource Sharing, CORS)는 브라우저가 자신의 출처가 아닌 다른 어떤 출처(도메인, 스킴 혹은 포트)로부터 자원을 로딩하는 것을 허용하도록 서버가 허가 해주는 HTTPdeveloper.mozilla.org 프론트에서 http 요청을 보낼 때 따로 설정한게 없으면 CORS 오류가 뜸 브라우저에서 일어나는 문제( CORS로 요청을 막는건 브라우저 - 크롬, 사파리 등등 ) ex) 우리가 어떤 사이트에 로그인하면 다음에 다시 로그인 정보를 입력하지 않도록정보가 유지되는 경우가 있음 ( 내 브라우저에 ..

SpringBoot Security 2024.12.17

Gradle 정리 ( Mybatis ) ( API Test, 로그인 인증 )

DB 정보, mybatis 의존성 추가 CommandLineRunner implements import 단축키  -  컨트롤 + 쉬프트 + O 패키지, 파일 생성 리소스 밑에 mapper.xml 생성java 밑에컨트롤러, 매퍼, 모델, 서비스 패키지 생성컨트롤러(클래스)매퍼(인터페이스)서비스(인터페이스)서비스임플(클래스)DTO(모델, 클래스)  DTO타입, 컬럼명 적고 우클릭 - 소스 -  superclass, using field, getter setter, toString() 생성    Mapper ServiceServiceImpl 만들때 implements에 service 추가 Mapper 의존성, 생성자 주입 우클릭 - 소스 - using field  Controller서비스 의존성, 생성자 주입..

Gradle 2024.12.16

Vue3 v-model 한글 딜레이

v-model 사용하면 한글에서 딜레이돼서 한글자 늦게 표시가 된다   해결방안 =>  영어는 단어가 하나인데 한글은 자음 모음 3개 조합이라 입력시 딜레이가 걸리는 것처럼 보임  v-model로 입력 받으면 하나하나 입력 체크를 받음v-model이 기본적으로 자바스크립트 input 이벤트와 동일한 기능 input 이벤트 대신 change 이벤트를 사용하면, 입력이 완료된 후에만 값이 업데이트되므로 한글 입력 시 딜레이 문제를 해결할 수 있을 듯 하다. 자료를 찾아보니 v-model.lazy로 하면 change이벤트가 반영된다

에러 2024.12.13