728x90 분류 전체보기138 [스프링 시큐리티] 스프링 부트 3.X 이상의 시큐리티 안녕하세요. 스프링 부트가 3.x 이상이 되면서 스프링 시큐리티의 변화에 대해서 포스팅해보려고 합니다. 우선, 간략하게 SecurityConfig 클래스를 만들 때 상속을 받고 @Overiding을 통해 소스코드를 구현했었습니다. 하지만, 버전이 달라지면서 따로 상속을 받지 않고 @Bean으로 등록해서 사용하면 됩니다. 코드로 정리해보겠습니다. @Configuration @EnableWebSecurity public class SecurityConfig { @Bean public InMemoryUserDetailsManager userDetailsManager() { UserDetails userRole = User.builder().username("user") .password(passwordEnco.. 2023. 6. 1. [깃] remote에 날라간 깃 커밋 완전 삭제시 토이프로젝트를 진행하면서 올라가면 안될 내용이 깃허브 remote에 올라간 일이 있었습니다. 바로... ec2 ip와 그 안에 postgres 데이터베이스의 user와 passwrod가 올라간것... ec2를 해킹 당했다는 소식을 심심치 않게 들리는 요즘... 커밋을 지우기 위해 방법을 찾아야 했습니다... 제가 해결한 방법을 공유합니다! 현재 상황은 yml 분리라는 커밋 코드 내용에 ec2관련 내용이 올라간 것입니다. 따라서, 저는 이미지상에 두번재 커밋으로 돌아가고 싶었습니다. 아래의 그림처럼 두번째 커밋의 revision Number를 찾습니다. 그리고, 찾은 revision Number를 이용해서 커밋을 reset시키고 remote에 push를 하면 끝입니다. git reset --hard git.. 2023. 5. 24. [자바] 문자열리스트안에 특정 문자열 제거 후 맨 마지막으로 이동시키기 업무를 하던 중 코드를 개선하기 위해 고민을 했던 로직이 있어서 공유차 글을 남깁니다~ 상황 A라는 리스트 안에서 "특정문자" 라는 문자열을 찾는다. 현재 위치에서 가장 마지막으로 위치를 변경하고 싶다. 가장 먼저 직관적으로 떠오로는 코드를 적어보겠습니다. ArrayList list = new ArrayList(Arrays.asList("value1", "value2", "value3")); if (list.contains("value2")) { list.remove("value2"); list.add("value2"); } 위의 코드를 설명드리면 - 리스트를 할당합니다. - value2가 리스트에 있는지 체크합니다 - value2를 제거합니다. - value2를 리스트에 넣습니다. 저의 생각에는 절대 .. 2023. 5. 8. [스프링 시큐리티]JWT 토큰안에 내가 원하는 값 넣기 오늘은 간단하게 JWT 토큰 안에 원하는 값을 넣어보겠습니다. 코드는 앞에서 만들었던 custom한 Authentication에서 이어집니다. JWT 토큰안에 값을 추가하고 싶은 배경 로그인 시 내려주는 accessToken값에는 로그인할 때 로그인 id만 내려가고 있었습니다. 이로 인해, 프론트에서 지금 로그인한 계정의 정보가 부족하다는 요청이 있었습니다. 프론트의 요청을 충족시켜 주기 위해 accessToken에 값을 추가해서 내리기로 결정했습니다. 제가 사용한 방법은 Jwts.builder()에 claim입니다. claim은 key와 value형태로 데이터를 추가할 수 있습니다. ex) claim("key", object) public interface JwtBuilder extends Claims.. 2023. 4. 10. [스프링 테스트]포스트를 생성하고 조회하는 테스트 숨고 클론 코딩 프로젝트를 진행하면서 꼭 해야지 했던 것이 테스트 코드 작성이었습니다. 아직, 테스트 코드의 개념도 없고 목적도 없지만 어떤 맛인지 체크해보기 위해 작성해봤습니다. 테스트 시나리오 - 포스팅 생성 - 포스팅 단건 조회 - junit5를 이용해서 진행 저는 @SpringBootTest를 이용해서 테스트를 진행했습니다. 간단한 특징으로는 쉽게 통합 테스트를 위한 환경을 만들 수 있다. 모든 빈들을 스캔하고 어플리케이션을 생성할 수 있다. 다양한 옵션을 줄 수 있다. value와 properties : 프로퍼티를 key=value 형태로 추가할 수 있습니다. args: 애플리케이션의 arguments로 값을 전달할 수 있습니다. classes : 애플리케이션을 로딩할 때 사용되는 컴포넌트 클래.. 2023. 3. 27. Map을 활용한 이중 for문 줄이기 업무를 하던 중 이중 for문을 쓰면 해결될 일이 생겼습니다... 하지만 이중 for문을 정말 쓰기 싫었고 개선할 수 있는 무언가 아쉬운 포인트들이 자꾸 눈에 보였습니다... 그래서 for문을 안쓰고 해결할 방법을 찾으려고 노력했고 노력한 끝에 Map을 사용해서 해결해보았습니다. 다만, 메모리나 속도 측면에서 아직 디테일한 체크는 못해봐서 오히려 손해인 로직일 수 있습니다. 이런 방법도 있구나 이렇게 봐주시면 좋을 것 같습니다!! 상황 - A서버에서 B서버에 데이터를 요청합니다. - B서버에서는 데이터의 이름은 모르고 id값만 알고 있습니다. - 따라서, B서버에서 받은 데이터의 id값을 기준으로 A서버에서 데이터의 이름을 넣어줍니다. public void test(Long id){ // 특정 id를 기.. 2023. 3. 22. 이전 1 2 3 4 5 6 7 ··· 23 다음 728x90