Spring
-
PasswordEncoder, BcryptPasswordEncoderSpring 2023. 1. 19. 11:37
절대로 패스워드를 평문으로 저장해서는 안된다. - 해당 서비스의 관리자가 DB에서 모든 사용자의 비밀번호를 볼 수 있으며 DB가 노출되는 경우 공격자에게 계정 정보가 넘어갈 수 있다. - id와 password를 동일하게 여러 곳에서 사용하는 경우가 많아서 추가적인 피해가 발생할 수 있다. PasswordEncoder Spring Security 에서는 비밀번호를 안전하게 저장할 수 있도록 비밀번호의 단반향 암호화를 지원하는 PasswordEncoder 인터페이스와 구현체들을 제공한다. public interface PasswordEncoder { // 비밀번호를 단방향 암호화 String encode(CharSequence rawPassword); // 암호화되지 않은 비밀번호(raw-)와 암호화된 비..
-
Spring Security : Web IgnoreSpring 2023. 1. 19. 00:56
Spring Security는 기본적으로 모든 자원에 접근하는 요청에 대해서 인증, 인가를 확인해서 자원에 접근할 수 있는 경우에만 값을 내려준다. 인증, 인가를 모두 검사하는 것이 안전하지만 필요하지 않는 경우도 있다. 특정 URL에 접근했을 때, View가 랜더링 되는 시점에 URL에 접근할 수 있다는 인가를 받으면 그 화면이 바로 랜더링이 되면 된다. 그렇지만 스프링 시큐리티는 기본적으로 모든 접근에 대해서 인증, 인가를 검색하기 때문에 해당 URL을 랜더링 하는데 필요한 정적인 파일 (CSS, HTML, JS) 파일들을 모두 다시 한번 검사한다. 필요 없는 검사가 반복될 수 있기 때문에 정적인 파일에 한해서 검사를 건너뛸 수 있도록 처리해주어야 한다. Spring Security 에서는 Web I..
-
@EqualsAndHashCode, equals, hashCodeSpring 2023. 1. 18. 22:23
equals 와 hashCode란? equals 와 hashCode는 Object 클래스에 정의되어 있다. Object 클래스의 자식인 Java의 모든 객체는 Object 클래스에 정의된 equals 와 hashCode 함수를 상속받는다. equals() boolean equals(Object obj)로 정의된 equals 메소드는 2개의 객체가 동일한지 검사하기 위해 사용된다. equals는 2개의 객체가 참조하는 것이 동일한지를 확인하는 것이며, 동일성(identity)을 비교하는 것이다. 즉, 2개의 객체가 가리키는 곳이 동일한 메모리 주소일 경우에 동일한 객체가 된다. public boolean equals(Object obj) { return (this == obj); } 동일한 객체일지라도 서..