본문 바로가기

프로젝트75

[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.
[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.
[블로그프로젝트] 32. 댓글리스트 출력 유튜브에서 블로그 만들기 프로젝트를 따라하면서 나의 스킬을 조금더 레벨업 하고자 한다. IDE : IntelliJ 언어 : Java DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 게시글에 댓글들이 달렸을때의 기능을 작성하고자한다. 우선 repository에 ReplyRepository를 생성한후 JpaRepositry를 상속받아 사용할수 있게 해준다. public interface ReplyRepository extends JpaRepository { } 댓글의 디자인은 아래와 같이 진행할 예정이다 detail.jsp로 이동해서 아래와 같이 작성해준다. https://www.w3schools.com/bootstrap4/bootstrap_cards.asp 에 있는 .. 2023. 6. 21.
[블로그프로젝트] 31. 카카오로그인(2) 유튜브에서 블로그 만들기 프로젝트를 따라하면서 나의 스킬을 조금더 레벨업 하고자 한다. IDE : IntelliJ 언어 : Java DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 카카오톡으로 로그인한유저가 개인정보를 변경하려고 하면 나중에 로그인할 때 오류가 생길것이다. 왜냐하면 우리는 coskey로 특정한 비밀번호로 지정해줘서 db에 저장에 저장을 해줬는데 카카오톡으로 로그인한 유저가 다시 로그인하려고 할 때 비밀번호가 다르게 달라서 에러가 뜨는 경우가 있을 수 있기 때문에 예방하기 위해서 기능을 추가해주자. 우선 카카오톡을 통해서 로그인한 유저와 일반유저를 구분하는 값이 필요하기 때문에 추가를 해줘야한다. User.java로 이동해서 oauth를 추가해준다. .. 2023. 6. 20.
[블로그프로젝트] 30. 카카오로그인(1) 유튜브에서 블로그 만들기 프로젝트를 따라하면서 나의 스킬을 조금더 레벨업 하고자 한다. IDE : IntelliJ 언어 : Java DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 시작하기전 컨트롤러에 해당 기능들을 전부 작성하는건 좋은방법은 아니지만 공부목적으로 좀더 이해하기 편하게 하기위해서 컨트롤러에 작성하고자한다. 지난글에서 응답받은 토큰의 정보들을 복사해서 table폴더하위로 OAuthToken객체로만든다. 값을 주고받아야하기때문에 @Data 어노테이션을 추가해주자 @Data public class OAuthToken { private String access_token; private String token_type; private String refre.. 2023. 6. 19.