본문 바로가기

Java/spring19

spring security를 알아보자 - 3 이번엔 새로운 프로젝트를 만들어보자. 일단 저번에만들던걸 복사해서 그대로 만들어보자. 그리고 저번에 만든 컨트롤러는 지우고 새롭게 컨트롤러들을 만들어보자. ㅁ AccountController @RestController public class AccountController { @GetMapping("/myAccount") public String getAccountDetails() { return "Here are the account details from the DB"; } } ㅁ BalanceController @RestController public class BalanceController { @GetMapping("/myBalance") public String getBalanceDetail.. 2024. 3. 15.
spring security를 알아보자 - 2 ㅇ Spring Seocurity의 내부구조 1. 가장 먼저 유저가 로그인정보(자격증명)를 입력해서 클라이언트가 백엔드 웹 애플리케이션에 전송함. 2. 20개이상의 필터가있는 SpringSecurity 필터를 통하는데, 여기서 인증객체(username과 자격증명만 보유)로 변환시키고 3. Authentication Manager한테 보낸다. 4. 실질적인 인증로직을 관리하는 Authentication Manager는 웹애플리케이션 안에 무슨 인증제공자가 존재하는지확인하고 전달함. 5. 유저의 자격증명을 검증하기위해 UserDetailsManager로 보내고, 6. 비밀번호를 검증하기위해 PsswordEncoder로 보낸다. **만약 여기서 검증이 실패하면 Authentication Manager가 유저에.. 2024. 3. 12.
spring security를 알아보자 - 1 ㅇ 보안이 중요한 이유 웹 애플리케이션이 중요한 데이터를 갖고있기 때문에 데이터 보호 뿐 아니라 비지니스 로직또한 보호해야 한다. 구글 검색엔진만해도 많은 알고리즘을 갖고있고, 이것을 보안으로 보호하고있다. 비기능적 요구사항은 고객의 비지니스 로직과 상관이 없는 요구사항으로 보안,성적,코딩기준 모두 비기능적 요구사항. 우린 개발단계부터 보안을 생각해야함. 인증과 권한을 구현하는것은 개발자의 몫이다. 왜 보안이 중요한가? 없으면 데이터 침애, 보안 취약점, 웹앱 내의 공격으로 이어질 수 있다. CSRF, XSS rhdrur, 취약한 인증공격과 같이 보안공격들이 존재하는데 모두 고려해햐함. ㅇ 보안없이 간단한 spring boot 앱 구현 spring initializr에서 그동안은 프로젝트 유형을 grad.. 2024. 3. 4.
Spring 입문 - AOP ㅁ 모든 메서드의 호출 시간을 측정하고 싶다면? public Long join(Member member){ long start = System.currentTimeMillis(); try{ validateDuplicateMember(member); // 중복회원검증 //메서드 뽑는 단축기 커맨드 + t, extract Method memberRepository.save(member); return member.getId(); } finally { long finish = System.currentTimeMillis(); long timeMs = finish-start; System.out.println("join = " + timeMs + "Ms"); } //같은 이름이 있는 중복 회원X } 이런식으로 .. 2024. 1. 25.