본문 바로가기

Java108

롤케이크 자르기 ㅇ 문제설명 ㅇ 처음 푼 방법 public static int solution(int[] topping) { HashSet totalTypes = new HashSet(); for (int type : topping) { totalTypes.add(type); } int totalCount = totalTypes.size(); int waysToSplit = 0; HashSet leftTypes = new HashSet(); HashSet rightTypes = new HashSet(); for(int type : topping){ rightTypes.add(type); } for(int i = 0; i < topping.length-1; i++){ leftTypes.add(topping[i]); rig.. 2024. 4. 11.
spring security를 알아보자 - 9 ㅇ CORS(Cross-Origin Resource Sharing) CORS 에러는 웹 애플리케이션에서 요청을 보낼 때, 해당 요청이 다른 도메인, 프로토콜, 또는 포트를 가지고 있는 서버로부터 자원을 요청하는 경우에 브라우저에 의해 발생한다. 서버에서 이러한 요청을 허용하려면, 응답에 Access-Control-Allow-Origin과 같은 CORS 헤더를 포함해야 합니다. 서버 설정에서 이 헤더를 올바르게 구성하지 않으면, 브라우저는 보안상의 이유로 응답을 차단하고, 개발자 콘솔에 CORS 관련 에러 메시지를 표시함. CORS는 보안공격이 아니라, 그로부터 지키기 위해 실행되는 보호단계로 보면 된다. 나도 처음 프로젝트에서 CORS 설정을 해주지 않아서 배포과정에서 실패했던 기억이 있다. 좀더 알기 .. 2024. 4. 2.
spring security를 알아보자 - 8 저번까진 spring security에서 제공하는 비밀번호 인코딩 해싱에 대해 봤다. 이번엔 Authentication Provider에 대해 자세히 아라보자. ㅇ Authentication Provider의 역할 사용자가 제공한 인증정보를 기반으로 사용자의 인증을 수행하는 역할을 함. 인증정보가 유효한지 검증하고, 해당 사용자에 대한 인증을 완료하는 과정을 담당함. Authentication 객체를 검사해 해당 사용자가 시스템에 접근할 권한이 있는지 확인하고, 사용자의 상세정보를 로드하고, 인증결과를 새로 Authentication 객체로 생성한다. ㅇ Authentication Provider의 종류 DaoAuthenticationProvider: 가장 기본적인 AuthenticationProvide.. 2024. 3. 29.
spring security를 알아보자 - 7 ㅇ PasswordEncoder의 역할을 알아보자. 데이터베이스에는 비밀번호가 절때로 그냥 문자열로 저장되면 로그에서나, 다른부분에서 유출이 발생할 수 있어서, 절대 그렇게 저장해서는 안된다. DB에 항상 저장할땐 비밀번호를 인코딩해서 저장을 해야한다. Spring security 프레임워크 내에 어디서 비밀번호 검증이 일어날까? DaoAuthenticationProvider에서 실질적인 검증이 일어난다. authenticate() 에서 유저정보를 불러오고, PreAuthenticationCheck에서 만료되었는지 검증하고, additionalAuthenticationChecks() 에서 인증객체를 받고 거기에 입력받은 비밀번호정보를 PsswordEncoder.matches() 로 인코딩한 입력받은 비밀.. 2024. 3. 26.