본문 바로가기

Java108

spring security를 알아보자 - 12 ㅇ JSON Web Token 기반 인증 인증방법으로 세션과 토큰의 차이는 이미 포스팅해놓은게 있으니 패스. 그리고 JWT를 적용해서 어플을만든 경험도 있기에 간단하게 짚고 넘어가보겠다. ㅇ 토큰? 토큰은 클라이언트 애플리케이션에서 백엔드 시스템으로 보호된자료에 접근할때마다 보낼 수 있도록 설정되어있다. 토큰이 유효하다면 백엔드 서버는 올바른 응답을 해줄 수 있다. ㅇ 토큰을 사용함으로써 얻는 장점 자격증명이 되면 실제 자격증명을 공유하지 않고도 토큰을 주고받는것으로도 클라이언트와 백엔드 서버가 작업할 수 있게된다. 또한 백엔드 애플리케이션도 인증을 반복해서 하지 않아도 된다. 그리고 토큰을 사용하여 엔드 유저의 유저정보 혹은 역할정보를 저장할 수 있다. Spring Security 에서 기본으로 만드는.. 2024. 4. 19.
spring security를 알아보자 - 11 ㅇ Spring Security에서 필터란? 간단히 보면 클라이언트에서 오는 요청을 필터에서 한번 걸러서 서블릿으로 전달을 한다. 이때 필터는 어떤걸 걸러주는 걸까? 여러가지 필터가있지만 뭐 예를들어 보자면, SecurityContextPersistenceFilter: 보안 컨텍스트를 로드하거나 저장함. CsrfFilter: CSRF 공격을 방지함. LogoutFilter: 로그아웃 처리를 함. UsernamePasswordAuthenticationFilter: 폼 로그인 처리를 함. 각 필터는 요청을 처리하고, 다음 필터로 요청을 전달하거나, 필터 체인을 종료하고 응답을 반환할 수 있다. 필터는 요청 또는 응답을 수정할 수 있으며, 인증 실패와 같은 경우에 요청 처리를 중단하고 오류 응답을 반환할 수도.. 2024. 4. 18.
spring security를 알아보자 - 10 ㅇ 인증과 인가의 차이 인증(Authentication)은 사용자의 신원을 확인하는 과정. 사용자가 누구인지를 식별하고 검증하는 것. 대표적인 예시로 로그인이 있다. 인가(Authorization)은 인증된 사용자가 수행할 수 있는 행동을 결정하는 과정. 인증이 실패하면 401, 인가가 실패하면 403. 인증이 됐지만 이 유저는 접근할 수 없다는 뜻. 애플리케이션 내에는 다양한 역할이 존재하고 역할마다 접근할 수 있는 서비스는 다를 것이다. 그래서 우리는 인가 설정을 잘 해야한다. ㅇ 어디에 인가정보가 저장될까? Spring Security에서는 이 권한 또는 특권을 권한(Authorities), 역할(role)로 구분해서 부른다. 저장되는 방식은 비슷한다. 먼저 권한을 보자. GrantedAuthori.. 2024. 4. 15.
땅따먹기 ㅇ 문제설명 ㅇ 첫번째 시도 public static int solution(int[][] land) { //맨첫번째 행에서 4가지 경우의수를 구한다. int total = 0; int maxIndex = 0; for(int i = 0; i < land.length; i++){ if(i == 0){ total += maxArrNoEx(land[i]); maxIndex = findIndex(land[i],total); }else{ total += maxArr(land[i],maxIndex); } } return total; } public static int maxArr(int[] arr, int except){ int maximum = 0; for(int a = 0; a < arr.length; a++).. 2024. 4. 12.