보안에 있어서 Salt를 쓰면 좋다길래 나도 한번 만들어볼까 했다. 그런데 Spring Security의 BcryptPasswordEncoder에는 이미 Salt가 사용되고 있다고 한다 그래서 Salt를 어떻게 만들고 사용하는지, Salt를 쓰는게 도대체 왜 의미가 있는지 이해해보고자 노력했다 그 내용을 정리한 글 해시 함수란 보통 비밀번호는 해시함수를 한번 거쳐서 저장한다. 문자를 해시 함수에 넣으면 해시 알고리즘을 통해서 요상한 값(출력 해시)을 출력해준다. 위 표와 같은 함수들이 있다고 한다 해시 함수의 특징 함수별로 알고리즘이랑 출력 해시(Digest)가 달라서 계산 속도나 보안에 차이가 있다 단방향 암호화라서 복호화 할 수 없다 비밀번호 >> 해싱된 값 : 가능 해싱된 값 >> 비밀번호 : 불가..
java.sql.SQLException: Access denied for user 'nobody'@'172.17.0.1' (using password: YES) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) ~[mysql-connector-j-8.0.31.jar!/:8.0.31] at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-j-8.0.31.jar!/:8.0.31] at com.mysql.cj.jdbc.ConnectionImpl.createNe..
1. java.lang.IllegalArgumentException: Expected URL scheme 'http' or 'https' but no colon was found java.lang.IllegalArgumentException: Expected URL scheme 'http' or 'https' but no colon was found at okhttp3.HttpUrl$Builder.parse$okhttp(HttpUrl.kt:1260) ~[okhttp-4.9.1.jar:na] at okhttp3.HttpUrl$Companion.get(HttpUrl.kt:1633) ~[okhttp-4.9.1.jar:na] at okhttp3.Request$Builder.url(Request.kt:184) ~..
BaseEntity 클래스 @EntityListeners(AuditingEntityListener.class) @Getter @Setter @MappedSuperclass @ToString public class BaseEntity { @CreatedDate @Column(updatable = false) private LocalDateTime createdAt; @LastModifiedDate private LocalDateTime lastModifiedAt; } User 클래스 @AllArgsConstructor @NoArgsConstructor @ToString(callSuper = true) @EqualsAndHashCode(callSuper = true) @Builder @Getter @Enti..
강의 할 때 jwt 토큰을 'application.yml 에 넣으니까 외부에 알려지지 않게 설정해라' 라는 말을 듣고 자연스럽게 application.yml 을 gitignore에 추가해서 gitlab에 푸시했다. 파이프라인까지 다 완료 했는데 도커에서 docker run -p ... 하면 한 10초정도 뒤에 해당 컨테이너가 내려갔다. 해결 방법을 도저히 모르겠었는데 '설마 yml을 안올려서?' 싶어가지고 gitlab에 푸시하니까 정상 작동했다. 토큰을 application.yml 에 넣지않는 방법으로 프로젝트를 구현해야겠다.
Inferred type 'S' for type parameter 'S' is not within its bound; should extend 에러 발생 찾아보니 JpaRepository에서 타입 설정을 잘못 한거였다. 단순한 에러였다.