java 93

SpringbootSecurity/Security권한처리/@EnableGlobalMethodSecurity처리

Security버전 1의 마지막이다. admin과 manager의 권한 처리를 해볼 것이다. 관리자와 매니저는 엄연히 다른 권한을 가져야 하기 때문에 일반 유저와 분리가 돼야 한다. 하지만 지금 role이 전부 USER로 잡혀있는 것을 확인할 수 있다. 이렇게 인증을 설 정해주면 user로 로그인하면 /user만 들어갈 수 있고 manager로 로그인하면 /manager는 들어갈 수 있는데 인증만으론 갈 수 없는 /admin페이지로는 갈 수 없다. admin은 권한이 필요하기 때문이다. admin으로 로그인하면 다 들어갈 수 있다. 특정 메서드 메서드 하나에만 권한 처리를 하는 방법 특정 메서드 하나만 권한 처리만 하고 싶은 경우에는 @EnableGlobalMethodSecurity를 사용해서 위 설정들..

SpringbootSecurity 2021.08.27

SpringbootSecurity/시큐리티 로그인

SpringbootSecurity에 포스팅은 처음부터 끝까지 연결되니 처음부터 봐주세요 저번 포스팅 때 시큐리티 회원가입을 해봤으니 이제 로그인을 진행해 본다. 주석을 꼭 참고하고 위와 같이 security설정을 해준다. 위와 같이 action속성을 지정해주면 이제 login처리는 security가 낚아채서 대신 처리를 해주는 것이다. method는 Post로 설정. 이때 시큐리티가 로그인처리를해주기위해 해줘야 할 몇 가지 처리들이 있다. 주석을 꼭 참고해서 공부할것 설명을 좀 더 덫붙힌다면. user가 로그인을 했을 때 저장하는 session정보를 Security Session에 저장을 해야 한다는 말인데 그러기 위해선 Security Session => Authentication객체 => UserDe..

SpringbootSecurity 2021.08.25

SpringbootSecurity/시큐리티 회원가입

Security 가 적용된 로그인 시스템을 만들어 갈 것입니다. 이번 포스팅에서는 회원가입을 다뤄 보겠습니다. 먼저 view단을 간단하게 아래와 같이 구성한다. form에 action처리랑 method속성은 상황에 맞게 추가시켜준다 이제 DB 모델을 만든다. 이제 해당 모델로 만든 클래스를 jpaRepository를 상속받아서 userRepository를 만들고 컨트롤러를 만들어서 회원가입을 시켜 볼 거다 주석에 적혀있다시피 일반적인 save함수를 사용하면 시큐리티로 로그인을 할 수가 없기 때문에 config에서 설정을 좀 더 잡아줘야 한다. 주석을 참고하길 새로운 어노테이션을 하나 더 배웠다 @been 주석 참고! 위 주석에서처럼 그냥 save함수만 써서 가입을 시켰더라면 시큐리티 처리가 되지 않은 그..

SpringbootSecurity 2021.08.25

AOP개념

Validation체크 spring을 좀 하다 보면 유효성 검사를 하는 validation체크를 할 수밖에 없다. 사용자가 어떤 데이터를 던질지 모르고 혹시 모를 서버의 공격에 대비한 체크들을 해야 한다. 그럼 이때 예를 들어 request요청이 왔다고 했을 때 이데이 터가 쿼리 스트링이든 httpbody든 이 데이터를 filter에서 거르도록 해야 한다. 예를 들어서 post:/user에 username과 password요청이 왔다. 그럼 서버는 /user라는 http메서드와 uri를 디스페처가 감지를 하고 /user주소가 있는 함수를 찾는다. 그럼 자연스럽게 해당 함수의 매개변수를 확인한다. 이때 만약에 매개변수로 Strig username, String password, String Phone 이렇..

Springboot 2021.08.13

지금 만들고 있는 프로젝트에서 결제 API(import) 사용해보기/결제 후 결제 list화면 구현

지금 포트폴리오 만든다고 쇼핑몰을 만드는 프로젝트를 하고 있는 와중에 결제 api를 사용하는 방법을 공부 중이다 결제 api는 자바스크립트로 호출되기 때문에 onsubmit을 사용해서 action이 이뤄지지 않고 해당 자바스크립트 함수가 사용되도록 설계했다. 회원들이 불필요한 중복된 정보를 적는 건 ux가 좋지 않다 그래서 로그인된 사람만 들어올 수 있는 페이지로 프로그램을 짜고 session에 있는 user의 값을 넣어줬다 이제 결제 api를 호출할 때 사용할 db의 정보를 인수로 넣어준다. 인수에 있는 값들을 응답받을 파라미터의 값에 맞게 넣어준다. 정상적으로 api가 작동한다 이제 결제를 완료했을 때 어떤 데이터를 받을 수 있는지 알기 위해서 import페이지에서 문서를 찾아보자. 참고로 testA..

Springboot 2021.08.02

공공데이터 활용하기/(2pojo(json데이터 자바오브젝트로 만들어주는 사이트) /(gson사용하기)

https://www.data.go.kr/ 공공데이터 포털 국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Datase www.data.go.kr 일단 여기 가입해서 활용할 데이터를 신청을 해놓는다. 승인이 떨어지기까지 시간이 좀 많이 소요되니 작업하기 전에 미리미리 해놓는 것을 추천합니다. 우리나라는 공공데이터 강국이라 고 합니다. 어떻게 강국이 됐을까요? 20년정도 전에 이제 막 스마트 몬이 나오기 시작할 때에 어떤 고등학생이 버스시간에 맞춰서 나오는 게 어려우니까 한 어플을 개발했는데 그 어플이 버스시간을 버스 홈페이지에서 클로링해서 알려주는 어플을 개발한 것이다. ..

Springboot 2021.07.29

visual studio code에서 Spring boot/JPA개발환경 설정

visual studio가 가벼운 이유는 필요할 때마다 다운로드할 수 있도록 설계돼있기 때문이다. sts를 사용하기 위해서 툴들을 다운로드하여준다 sts project 만들기 java에서 프로젝트명은 무조건 소문자로 작성해야 한다 java에서 대문자를 사용하는 건 클래스뿐 대략적으로 기본적인 dependencies만 잡아주고 경로 설정해서 누르면 성공 꼭 넣고 싶은 폴더에 마우스를 올리고 새 파일을 만들어준다. vs에서는 확장자명을 적어줘야 한다. 그리고 vs를 껐다가 켜서 왼쪽 하단에 나오는 것들은 always로 설정해서 툴이 알아서 필요한 것들을 다운로드할 수 있도록 설정해 준다. 위사항을 설정해 주면 저장 시 자동정렬을 해주는데 어떤 언어를 자동정렬을 할 건지 설정을 해준다 java를 선택해주면 저..

Springboot 2021.07.21

open jdk주소와 환경변수에 대해서

https://jdk.java.net/archive/ Archived OpenJDK GA Releases Archived OpenJDK General-Availability Releases This page is an archive of previously released builds of the JDK licensed under the GNU General Public License, version 2, with Classpath Exception. WARNING: These older versions of the JDK are provided to he jdk.java.net 오픈 jdk와 유료 jdk가 다른 점은 유료는 라이선스비를 내기 때문에 어떠한 치명적인 오류가 생기거나 문제가 생겼을 시에 지..

cs 2021.07.21

Exception처리(기본개념)

try라는 스택과 catch스택이 있는 이유는 프로그램은 컴파일 시 오류와 런타임 오류(클라이언트와 통신)가 있다. 기본적으로 웹서버는 웹서버 시 오류가 발생할 수 있다. 통신을 하는 코드는 전부다 try/catch로 묶어야 한다. 클라이언트랑 하는 것도 통신 db에 있는 데이터를 가져오는 것도 통신이다. 메모리에 있는 데이터를 하드에 저장하는 것도 통신이다. 위와 같이 통신이 있는 코드는 전부 try/catch로 묶어야 한다. 근데 스프링에선 파일을 리턴하는 컨트롤러와 데이터를 리턴하는 컨트롤러가 있는데 try/catch는 string데이터를 리턴한다. 결국 구조적으로 컨트롤러에서 Exception 처리를 할 수 없다. 프레임워크의 규칙 때문에 Exception처리를 할 수 없는 것이다. 그래서 스프링..

Springboot 2021.07.20

Springboot사용해서 블로그 만들기 글쓰기기능(summernote에디터사용) 추가와 상세보기 페이지(삭제,수정) 회원정보 변경

웹에서는 인증(어선트케이션)과 권한(어 솔 라이즈)이 있다. 건물로 치면 입구에 들어가는 행위가 인증, 어떠한 방으로 들어가는 것은 권한인 것이다. jpa규칙 jpa는 형태만 똑같으면 되기 때문에 password에 별칭을 달아서 형태를 유지하되 password를 session에 담기지 않도록 했다. jpa규칙 jpa는 형태만 똑같으면 되기때문에 password에 별칭을 달아서 형태를 유지하되 password를 session에 담기지 않도록 했다. 저번에 구현했던 회원가입 파일을 복사해서 위와 같이 수정했다. readonly는 수정이 불가능하도록 만들어주는 속성 required는 해당 태그가 입력 없이 subimt이 안되도록 사용자에게 강제하는 속성 규칙 EL표현식은 위와 같이 변수로 담아서 보내면 톰캣이..

Springboot 2021.07.07