전체 글 63

[TIL] Spring Security 하나의 url에 두 개의 역할이 가능하도록 권한을 주고싶다

프로젝트에 관리자 페이지를 생성하면서, 역할 admin을 을 만들었다. admin 관리자 페이지의 url을 Security Config 클래스에서 역할을 부여한다. http ... .antMatchers("/admin/**").hasRole(Role.ADMIN.name()) .antMatchers("/api/v1/**").hasRole(Role.USER.name()) ... 이러면 admin이 붙은 페이지들은 role이 admin인 사용자만 접근할 수 있다. 그런데 문제가 생겼다. 글을 삭제하거나 탈퇴하는 등 기능이 들어가있는 url을 일반사용자에게 부여해놨기 때문에 admin 계정은 해당 기능들을 쓰지 못했다;; 바보아니야...? 그래서 열심히 검색을 해보았는데 계층 권한이라는 Role Hierarch..

TIL 2023.10.15

[TIL] 반성의 TIL... Junit MockMvc.perform 에서 session 사용하기..

에궁.. 오늘은 배운..것도 배운 거지만 진짜 반성해야된다. 어줍잖게 테스트코드를 써놓고 추가개발 할 때는 사용하지 않으면 빌드에 영향을 준다는 사실을 일하면서 내내 겪어놓고 또 이랬다~~ 원래 문제는 travis연동하면서 발견한거라 혹시나 했는데 결국 빌드시 테스트코드의 오류였다. 초기 개발때 사용한 부분인데, 추가개발 할 때는 포스트맨과 웹으로만 하다보니까 잊혀졌던..^^ 초기개발에 없던 parameter가 추가되면서 테스트코드에도 추가를 해줘야 하는데, 이게이게.. 세션을 가져오는 거라 조금 헤맸다ㅜㅜ @PutMapping("url") public Long update(@RequestBody Member member, @LoginUser SessionUser user) { return 1; } 이런..

TIL 2023.10.12

[TIL] login with oauth 2.0 페이지 수정해보기.. /login

글을 등록하거나 읽을 때 쓰는 이 페이지가 너무 거슬렸다... security 때문에 자유롭지 못하게 계속 로그인하라고 뜨는 것이지... 이것을 두고볼 수 없다.. 저 페이지를 예쁘게 가다듬거나 혹은 alert창을 띄우고 싶었다. 그런데 제가 과연 화면을 예쁘게 꾸밀 수 있을까요? 못합니다... 그리하여 그냥 alert창만 띄우기로 했어요..😊 /login으로 redirect될 때의 페이지를 수정한다고 직관적으로 해석해보았다.. 그렇다면 일단 SecurityConfig 파일을 수정해야한다. @Override protected void configure(HttpSecurity http) throws Exception { http ... .authorizeRequests() .antMatchers(...,...

TIL 2023.09.24

[비전공자의 컴공지식 채우기] 네트워크의 기초

아무래도 공부는 역시 필요한 부분부터 하는 것이 맞다,,고 생각되어 2장 네트워크부터 하기로 했다..ㅎㅎ 2. 네트워크 2.1 네트워크의 기초 네트워크 : 노드와 링크로 서로 연결되어 있으며 리소스를 공유하는 집합을 의미한다. - 노드 : 서버, 라우트, 스위치 등 네트워크 장비 - 링크 : 유선 또는 무선 => 네트워크 장비들이 유선 또는 무선으로 연결된 리소르를 공유하는 집합? 2.1.1 처리량과 지연시간 많은 처리량을 처리할 수 있고 지연시간이 짧고 장애빈도가 적은 것이 좋은 보안을 갖춘 네트워크다. - 처리량 : 성공적으로 전달된 데이터의 양 => 많은 트래픽을 처리한다 = 많은 처리량을 가진다 - 트래픽 : '특정 시점'에 링크 내에 흐르는 데이터의 양 => 트래픽이 많아진 것은 흐르는 데이터가..

[TIL] ./gradlew 무한 로딩..? 에러도 뜨지 않고 먹통될 때

부트버전문제로 수정하다가 다시 배포했는데 자꾸 실패했다. (부트 2.7->2.6) 그냥 java -jar 로 배포해보면 되는데, deploy파일로 배포시키면 에러메시지도 뜨지않고 멈춰버렸다. (이런식으로 https://daretobe.tistory.com/56) 부트 버전을 바꾸었으니 테스트의 문제일까 하여 ./gradlew test 를 돌려보았다. 역시나 위와같이 되지 않았다. 흠..근데 이게 버전 바꿨다고 생긴 문제는 아닌 것 같아서 한참을 찾아보았더니 swap이라는 것을 설정해주어야 한다고 한다... 참고했던 블로그 : https://kth022.tistory.com/15?category=1045193 [Spring Boot] gradle build :compilejava에서 멈추는 현상 sprin..

TIL 2023.09.19

[TIL] 서버 배포 시 에러 no main manifest attribute, in {JAR_FILENAME}-plain.jar

배포시도 후에 생성되는 nohup.out 파일을 확인해보니 이런 에러가 있었다. Error: Invalid or corrupt jarfile /home/ec2-user/app/step1/ no main manifest attribute, in /home/ec2-user/app/step1/{JAR_FILENAME}-plain.jar no manifest 는 예전에 jar파일 가지고 이리저리 가지고 놀 때 많이 봤던 에러인데 또 만났네... 아무튼 근데 이상한 점이 저 디렉토리에서 생성된 파일들을 확인해보면 jar파일이 두개가 생성되는 것을 확인할 수 있었다. 찾아보니 스프링부트 2.5 이상부터 빌드시에 생성되는 자르파일 인 것을 알게되었다. 이 plain파일은 이름처럼 의존성을 포함하지 않고 클래스와 리소..

TIL 2023.09.18

[TIL] 서버에서 ./gradlew test 했더니 85% EXECUTING 상태로 멈췄다.

프로젝트를 로컬상태에서 테스트를 돌리면 전부 통과한다. 흠 분명 다 돌아가는데... 서버에서 배포하기 전 테스트를 돌리면 이렇게 85%에서 멈추고 시간만 올라간다ㅠ 아예 실패메시지를 띄워주면 좋을텐데 이렇게 되는 상태가 제일 어렵고 힘들다.. 그러다가 많은 검색을 통해 해결할 수 있었다! ./gradlew test --console=plain 빌드 성공

TIL 2023.09.14

[TIL] 아마존 리눅스1 환경에서 (EC2) JAVA 8, 11 설치

Putty로 EC2접속 후에 JAVA를 깔아야한다. 1.8과 11을 깔아보려고 한다. 먼저, 명령어는 sudo yum install -y java-1.8.0-openjdk-devel.x86_64 흠 그랬더니 실행되지 않았다. 오류는 Last metadata expiration check: 21:28:44 ago on Tue Sep 12 07:26:44 2023. No match for argument: java-1.8.0-openjdk-devel.x86_64 Error: Unable to find a match: java-1.8.0-openjdk-devel.x86_64 오호라.... 없다는 느낌이 확 오죠.. 흠 그렇다면 설치 가능한 애들이 있는지 확인해 본다. yum list java*jdk-devel..

TIL 2023.09.13

요즘 공부하고 있는 책 - 스프링 부트와 aws로 혼자 구현하는 웹 서비스

간단한 웹 서비스를 만들어 배포까지 해보고 싶었는데, 적당히 딱 알맞는 책을 찾게되었다. 역시 뭐든 선배님들의 추천은 빗나가는 것이 없다. 과장님 감사드려요! 아직 완성되지 않았으니 회고록은 아니고, 그냥 중간점검 차 기록 남기기🐸 💡 책이 출간한지 좀 되어서 부트 버전이 낮아 고민했다. 책이랑 동일하게 2.1로 할지, 적당히 2.7로 할지, 아니면 이왕 하는 거 3.0의 시대에 맞춰 3.0으로 할지..!!!! 회사에서 새로 만들고 있는 프로젝트는 3이라 3으로 해볼까 했지만 3부터는 너무 달라지는 게 많아 두렵기도 해서 2.7로 선정했다. 💡 책의 코드대로 진행하다보면 deprecated 처리된 부분이나, 적용이 안되는 annotation이 다수 발생하여,, 약간의 고초를 겪었으나 다행히도 구글과 함께..

그냥일기 2023.09.12

[TIL] JPA 사용 중에 Error executing DDL "drop table if exists user CASCADE " via JDBC Statement 해결

JPA를 사용하면서 구글 인증을 하는데 런타임시에 Error executing DDL "drop table if exists user CASCADE " via JDBC Statement 이 에러가 발생했다. JPA 연동을 잘 하고 있었는데 갑자기 왜이러지? 싶어서 에러를 확인해보니, 로그인 연동을 하면서 만든 Entity Class인 User 때문이었다. user는 메타 테이블이기 때문에 사용자가 관리하는 테이블인지 알 수 없어서 이런 에러가 나는 것 같다. @Getter @NoArgsConstructor @Entity(name = "TB_USER") public class User extends BaseTimeEntity { } 이렇게 테이블 이름을 지정해준다. 콘솔 로그에 이렇게 정상적으로 뜨는 것을..

TIL 2023.09.11