728x90 반응형 SMALL 스프링부트26 이클립스 Spring Tool Suite 4 설치파일 / STS 4 파일 설치 / 나만의 환경설정셋팅 1. 이클립스 4 설치 - 내가 개인적으로 가지고있음 우선 sts4이후 버전은 계속해서 나오고있지만 3.9.## 버전인 이제 종료되었다 그러나 깃허브에는 존재한다. 그래서 우선 깃허브에 있는 링크를 올렸지만 만약 해당 버전마저도 사라질 수 있어서 혹시 몰라 내 구글 드라이브에도 올렸다. https://download.springsource.com/release/STS/3.9.18.RELEASE/dist/e4.21/spring-tool-suite-3.9.18.RELEASE-e4.21.0-win32-x86_64.zip https://drive.google.com/file/d/16Q2s2El-80qecIqHXUo2Y_ulkTB05_wH/view?usp=share_link 2. 이클립스 설정(Preference.. 2022. 12. 5. 로그인 컴포넌트 현재 프론트엔드 애플리케이션은 백엔드에 http 요청을 보냈을 때 403이 리턴되면 로그인 페이지로 리디렉트 해야합니다. 또 로그인한 후 백엔드 서비스로 부터 받은 토큰을 어딘가에 저장해 놓고 요청을 보낼 때마다 헤더에 Bearer 토큰을 지정해줘야합니다. 그래서 첫번쨰로 로그인 페이지와 리디렉션 로직을 구현해야합니다. 그러기위해서 리액트-라우터-돔 라이브러리가 필요합니다. 2021.12.14 - React-router-dom 라이브러리가 필요한 이유 React-router-dom 라이브러리가 필요한 이유 React-router-dom 라이브러리가 필요한이유 이 라이브러리가 왜 필요한지 설명전에 우리에게 익숙한 형식의 웹 애플리케이션을 살펴 보겠습니다. 우리에게 익숙한 형식의 라우팅은 다음과 같습니다 u.. 2021. 12. 14. 패스워드 암호화 마지마긍로 패스워드를 암호화 해보겠습니다. 패스워드 암호화 부분은 스프링 시큐리티가 제공하는 BCryptPasswordEncoder의 사용을 위해 구현을 잠시 미뤄뒀었습니다. 우리가 UserController와 UserService 를 구현할 당시에는 스프링 시큐리티 디펜던시를 설정하지 않았었기 때문입니다. 이제 Userservice를 수정해줍니다. 기존의 getByCredentials 매서드를 수정해주어야합니다. public UserEntity getByCredentials(final String email, final String password, final PasswordEncoder passwordEncoder) { final UserEntity originalUser = userRepositor.. 2021. 12. 13. TodoController에서 인증된 사용자 사용하기 지난 글들을 작성할때 , Todo 리스트에 대한 CRUD 기능을 구현할때 고정적인 아이디를 사용했습니다! 이땐 로그인 기능이 구현되지 않았어서 고정적으로 사용했었습니다. 그리고 이 기능을 아직도 사용하고있었습니다. 이제 이 메서드들이 인증된 사용자 아이디를 사용할 수 있도록 각 메서드에 userid라는 매개변수를 추가해줍시다! 우선 최초 url 매핑을 담당하는 SO부분을 수정시켜줍시다. @AuthenticationPrincipal String userId 해당 어노테이션을 이용해서 로그인되어있는 권한을 가져오는겁니다. 그리고 컨트롤러 오브젝트 단에서도 아이디를 매개변수로 받아서 해당 아이디로 셋팅하게됩니다. 그런데말입니다... userId는 도대체 누가 어떻게 String 인것을 알고 넘겨주는 걸까요? .. 2021. 12. 12. JWT 를 이용한 인증 구현 2021.12.11 - JSON 웹 토큰 JSON 웹 토큰 서버에서 전자 서명된 토큰을 이용하면 인즈엥 따른 스케일 문제를 해결할 수 가 있습니다! 우리는 전자 서명된 토큰을 이용해 스케일 문제를 해결합니다.ㅎㅎ 그리고 이렇게 전자 서명된 토큰 uno-kim.tistory.com 구현을 위해 일단 JWT 관련 라이브러리를 디펜던시에 추가해야합니다.! implementation 'org.springframework.boot:spring-boot-starter-security' 빌드.그래들에 추가해줍시다! OncePerRequestFilter 라는 클래스를 상속해 필터를 생성해야합니다. 위 클래스는 한 요청당 한번만 실행됩니다. 따라서 한번만 인증하면 되는 우리에게 맞는 필터입니다! 위 클래스를 상속받는 J.. 2021. 12. 12. 회원정보 찾기 스프링부트를 자습하면서 궁금한게 생겼었습니다!! 바로 간단한 정보로 기존에 저장되어있는 정보를 가지고 올순 없을까? 물론 가능합니다.!! 그러나 이걸 책이나 강의없이 구현할 수 있느냐, 얼마나 고민을 할수있느냐에 따라 내 기술이 되거나, 복붙러가 되거나 갈라진다고 생각이들었습니다..ㅠㅠㅠ 우선 계획을 세웠습니다. 이메일과 유저이름(패스워드의 경우 반대로)으로 회원정보를 몽땅 가져오자 SQL(리파지토리 단계)은 찾는다, 아이디와 유저이름을 통해 겟방식으로? 포스트방식으로? : 포스트방식으로 호출 입력값들을 UserDTO로 저장해서 처리된것도 UserDTO에 셋팅해서 간단하게 세웠습니다. package com.unoSpringBoot.study.persistence; import org.springframe.. 2021. 12. 10. 토큰 기반 인증 토큰(Token)은 사용자를 구별할 수 있는 문자열이다. 토큰은 최초 로그인 시 서버가 만들어줍니다. 서버가 자기만의 노하우로 토큰을 만들어 반환하면 클라이언트는 이후 요청에 아이디와 비밀번호 대신 토큰을 계속 넘겨 자신이 인증된 사용자임을 알리는 것입니다. 토큰을 기반으로 하는 요청은 헤더에 Authorization : Bearer 을 명시합니다. 서버는 이 토큰을 받고 어떤 형태로든 인증을 해야 합니다. 상황을 간단하게 하려고 서버가 랜던함 문자와 숫자를 섞어 UUID 로 토큰을 작성해 넘긴다고 가정해봅시다. 그러면 서버는 토큰을 생성해 인증 서버를 통해 저장해야합니다. 그리고 요청을 받을 때마다 헤더의 토큰을 서버의 토큰과 비교해 클라이언트를 인증할 수 있습니다. 이 솔류션은 Basic Auth를 .. 2021. 12. 8. Basic 인증 상태가 없는 웹 어플리 케이션에서 인증을 구현하는 가장 간단한 방법은 무엇일까요? 가장 간단한 방법은 모든 HTTP 요청에 아이디와 비밀번호를 같이 보내는 것일거에요! 이런 방법을 Basic인증이라고 합니다. Basic 인증에서는 최초 로그인한 후 HTTP 요청 헤더의 Authorization : 부분에 "Basic :' 처럼 아이디와 비밀번호를 콜론으로 이어붙인후 Base64로 인코딩한 문자열을 함께 보내는 거에요 이 HTTP 요청을 수신한 서버는 인코딩된 문자열을 디코딩해 아이디와 비밀번호를 찾아낸 후 사용자 정보가 저장된 DB또는 인증 서버의 레코드와 비교합니다. DB의 레코드는 아이디와 비밀번호가 일치하면 요청받은 일을 수행하고, 아니면 거부하게 되는겁니다! 흠... 이 솔루션은 그러나 아이디와 .. 2021. 12. 8. 스프링 시큐리티 통합 -1 구현 내용 (시큐리티 통합 주제로) 1. JWT 인증 로직 구현 2. 패스워드 암호화 로직 구현 1. JWT 생성 및 반환 구현 사용자 정보를 바탕으로 헤더와 페이로드를 작성하고 전자 서명한 후 토큰을 리턴하도록 해야합니당 구현을 위해 JWT 관련 라이브러리를 디펜던시에 추가해야해요! build.gradle의 dependencies 부분에 jjwt 라이브러를 추가해줍시닷! // https://mvnrepository.com/artifact/io.jsonwebtoken/jjwt implementation group: 'io.jsonwebtoken', name: 'jjwt', version: '0.9.1' 이제 보안을 제대로 구현하기위해 security 패키지를 만듭시다!! 이 패키즈는 인증과 인가를 위한 .. 2021. 12. 8. 프론트엔드란? + node.js 간단설명 프론트엔드란 말 그대로 사용자 바로 앞에서 사용자와 상호작용하며 애플리케이션 로직을 수행하고 백엔드 서버로 요청을 요청하는 역할을 합니다!! 웹서비스에서 클라이언트 또는 프론트엔드라는 웹 브라우저를 뜻합니다. 사용자는 자신의 컴퓨터에서 브라우저를 실행합니다. 브라우저는 인터넷을 이용해 서버에 있는 자원(HTML, JavaScripte,Css 등)을 사용자의 컴퓨터로 다운로드 한 후 브라우저에서 실행킵니다! Node.js ? Node.js가 등장하기 전 자바스크립트는 브라우저 내에서만 실행할 수 있었습니다. 자바스크립트는 브라우저상에서 HTML 렌더링의 일부로 실행하거나 , 자바스크립트 콘솔을 이용해 실행해야 했습니다 . 다시말씀드려서, 자바스크립트는 브라우저 밖에서는 실행할 수 가 없었습니다. 그러나 이.. 2021. 12. 2. REST security를 구현해보자! 당분간 User 레이어를 구현할것입니다!!! UserEntity 를 구현한다. UserRepository 구현 UserService 구현 UserDTO/UserController 구현 사용자는 id, username, email, password로 로그인을하고 구성되어있습니다.! 그래서 해당 정보들이 들어가는 Entity를 구현해봅시다 package com.unoSpringBoot.study.model; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import org.hibernate.annotations.G.. 2021. 12. 2. 서비스통합(백엔드와 프론트엔드 통합하기) 서비스 통합 크로스오리진 리소스 셰어링 스프링 @Configuration 을 이용한 CORS 문제해결 fetch를 이용한 프론트엔드와 백엔드 통합 현재 저는 독립적으로 동작하는 백엔드 애플리케이션과 독립적으로 동작하는 프론트엔드 어플이 하나씩있습니다! 이제는 두 어플리케이션을 통합해 하나의 기능을 하는 웹 애플리케이션을 완성할 차례입니다! 이제는 프론트엔드에서 백엔드에 API를 요청하는 코드를 작성해보겠습니다 우리는 이제 JS의 fetch API를 이용해서 Todo 아이템 CRUD를 하게 할게요! 하지만 이때 CORS문제에 만닥뜨리게 된다. 이 문제는 보안과 관련되어 있어 백엔드에서 해결해 줘야합니다. 우리가 개발하는 애플리케이션을 통해 CORS가 무엇이고 이를 어떻게 해주어야할까요!? App컴포넌트에 .. 2021. 12. 1. 이전 1 2 3 다음 728x90 반응형 LIST