본문 바로가기

분류 전체보기163

[Spring Security] 5. OAuth 구글로그인(2) 유튜브에서 스프링시큐리티를 심화교육하면서 조금더 레벨업 하고자 한다. IDE : IntelliJ 언어 : Java 8 스프링부트 버전 : 2.7.13 DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 구글로부터 받은 회원의 정보를 받아서 사용하기 위해서 oauth 패키지에 PrincipalOauth2UserService를 생성해준다. 해당 클래스에 @Service 어노테이션을 추가해주고, DefaultOAuth2UserService를 상속받고 loadUser 함수를 생성해준다. @Service public class PrincipalOauth2UserService extends DefaultOAuth2UserService { @Override public OAuth2.. 2023. 7. 4.
[Spring Security] 4. OAuth 구글로그인(1) 유튜브에서 스프링시큐리티를 심화교육하면서 조금더 레벨업 하고자 한다. IDE : IntelliJ 언어 : Java 8 스프링부트 버전 : 2.7.13 DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 구글아이디로 로그인을 준비 하기 위해서 아래링크로 이동해서 새로운 프로젝트를 만들어준다. https://console.cloud.google.com 프로젝트 이름을 만들어주고 API 및 서비스 -> OAuth 동의화면 으로 이동한다. 타입은 외부로 선택한 후 만들기 클릭 필수로 채워야하는 사항들을 넣어주고 저장 사용자 인증 정보로 이동 사용자 인증 정보 만들기 -> OAuth 클라이언트 ID 선택 애플리케이션 유형 웹 애플리케이션 선택 요청 주소에 localhost:포트.. 2023. 7. 4.
[Spring Security] 3. 권한부여&오류수정과정 유튜브에서 스프링시큐리티를 심화교육하면서 조금더 레벨업 하고자 한다. IDE : IntelliJ 언어 : Java 8 스프링부트 버전 : 2.7.13 DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 SecurityConfig에서 특수한 주소에는 전부 해당 권한이 있는 사용자만 접근가능하게 하기 저번글에서 SecurityConfig에 특정권한을 가진 사용자별로 접속할 수 있는 주소에 대해 차이점을 두었었다. @Bean public SecurityFilterChain configure(HttpSecurity http) throws Exception{ http.authorizeRequests() .antMatchers("/user/**").authenticated() ... 2023. 7. 4.
[Spring Security] 2. 로그인 유튜브에서 스프링시큐리티를 심화교육하면서 조금더 레벨업 하고자 한다. IDE : IntelliJ 언어 : Java 8 스프링부트 버전 : 2.7.13 DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 스프링시큐리티를 통해서 로그인하는 기능을 작성해보자 우선 loginForm.html에서 사용자가 입력한 username 과 password를 /login 으로 post형식으로 보내준다. sing in SecurityConfig에서 loginProcessingUrl에 /login으로 작성해주면 /login으로 오는 주소를 시큐리티가 낚아채서 대신 로그인을 해준다. 그후 기본 페이지로 "/" 로 이동하게 설정해준다. @Bean public SecurityFilterChain.. 2023. 6. 29.
[Spring Security] 1. 회원가입처리 유튜브에서 스프링시큐리티를 심화교육하면서 조금더 레벨업 하고자 한다. IDE : IntelliJ 언어 : Java 8 스프링부트 버전 : 2.7.13 DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 가진 권한에 따라서 접속할 수 있는 url에 차별점을 주기위해서 SecurityConfg파일을 생성해준다. url주소에 /admin이 있다면 admin이나 manager 권한이 있는 사용자만 접근이 가능하고 /user, /admin, /manager가 없다면 권한이 없더라도 접근이 가능하게 permitAll을 작성해주고 비밀번호 해시화를 위해서 BcryptPasswordEncoder를 빈으로 등록해준다. @Configuration @EnableWebSecurity pub.. 2023. 6. 28.
[IntelliJ] 데이터베이스 연결(mySQL) & 스키마변경하기 데이터베이스 연결하기 인텔리제이에서 데이터베이스를 연결하고 싶은데 어떻게 하나요? 우선 인텔리제이 우측을 확인해보면 데이터베이스가 보입니다. 이걸 클릭! 좌측에 + 버튼 클릭 data source에서 원하는 DB 클릭 이글에선 mySQL을 사용하겠습니다. db에서 생성한 유저아이디와 비밀번호를 입력 후 연결테스트를 진행 여기서 어떤 아이디와 비밀번호인지 모르는 분들은 mySQL에서 생성한 유저아이디와 비밀번호를 입력해주시면 됩니다. 연결이 성공한걸 확인하고 ok버튼 클릭 스키마변경하기 내가 원하는 스키마로 연결이 되지 않고 계속 다른 스키마가 보이는데 어떻게 하죠? 데이터베이스 클릭 후 아래부분을 클릭 디폴트 스키마를 체크해제하고 원하는 스키마를 클릭 하면 원하는 스키마로 변경된걸 확인할 수 있습니다. .. 2023. 6. 28.
[Spring Security] 0. 환경설정 유튜브에서 스프링시큐리티를 심화교육하면서 조금더 레벨업 하고자 한다. IDE : IntelliJ 언어 : Java 8 스프링부트 버전 : 2.7.13 DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 우선 db 스크립트에서 새로운 데이터베이스를 생성 후 새로고침을 해주면 아래와 같이 데이터베이스가 추가된걸 확인할 수 있다. 블로그프로젝트에선 자바버전을 17버전 스프링부트 버전을 3.0.X버전을 사용해서 달라진점이 있어서 막히는 부분이 많았었는데 이번엔 자바버전 8 스프링부트 버전을 2.7버전으로 사용하였다. 우선 새로운 프로젝트만들기를 해서 해당 라이브러리들을 검색해서 추가해준다. 다음 application.properties를 application.yml로 변경해준.. 2023. 6. 28.
[블로그프로젝트] 35. 게시글삭제시 오류수정(1) 유튜브에서 블로그 만들기 프로젝트를 따라하면서 나의 스킬을 조금더 레벨업 하고자 한다. IDE : IntelliJ 언어 : Java DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 댓글이 있는 게시글을 삭제하려고하면 생기는 오류가 있어서 수정하고자한다. 아래와같이 댓글이 있는 게시글을 삭제해보면 이렇게 에러가 뜨는걸 확인할 수 있다. 그에 반해서 얼러트는 글삭제가 잘 되었다고 말해주고 있다. 메인페이지를 확인해보면 삭제되지 않은 게시글을 확인할 수 있다. 해당 부분을 고치기위해서 board.js로 이동해서 조건문을 추가해준다. if(resp.status !== 200){ alert("글삭제실패"); }else{ alert("글삭제완료"); } 서버에서 테스트를 진행.. 2023. 6. 23.
[블로그프로젝트] 34. 댓글삭제 유튜브에서 블로그 만들기 프로젝트를 따라하면서 나의 스킬을 조금더 레벨업 하고자 한다. IDE : IntelliJ 언어 : Java DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 이제 댓글을 삭제하는 기능을 작성하기 전에 detail.jsp로 이동해서 댓글의 아이디부분을 살짝 수정해준다. 서버에서 개발자도구(F12를 눌러보면)해당 댓글들의 고유번호를 확인할 수 있다. 댓글삭제 버튼에 onclick을 바로 넣어주면서 게시글의 고유번호와 댓글의 고유번호를 같이 넘겨준다. 여기서 다른사람이 작성한 댓글도 삭제가 되면 안되기 때문에 조건문을 활용해서 로그인한 유저의 고유번호와 댓글을 작성한 유저의 고유번호가 일치할때만 삭제버튼이 보이도록 설정해준다. delete boar.. 2023. 6. 23.
[블로그프로젝트] 33. 댓글작성하기 유튜브에서 블로그 만들기 프로젝트를 따라하면서 나의 스킬을 조금더 레벨업 하고자 한다. IDE : IntelliJ 언어 : Java DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 댓글작성하기에 들어가기 전에 댓글목록의 순서를 내림차순으로 정렬하기 위해서 board.jsp에서 @Orderby("기준변수명 desc") 를 작성해준다. detail.jsp에 댓글작성하기와 댓글목록부분을 나눴었는데, 댓글작성하는 부분에 아래와 같이 작성한다. db에 넘겨줄때 boardId에 대한 값도 같이 넘겨줘야하기 때문에 board에 id를 hidden 값으로 넘겨준다 textarea와 button에도 id를 각각 부여해준다. form태그로 감싸서 사용하기 때문에 button에 typ.. 2023. 6. 21.