전체 글 119

[6강] 구글 로그인 준비

1. 해당 사이트에 접속한다. https://console.cloud.google.com/projectcreate?previousPage=%2Fapis%2Fdashboard%3Fhl%3Dko%26project%3Dsrpingboot-outh&organizationId=0&hl=ko Google 클라우드 플랫폼 로그인 Google 클라우드 플랫폼으로 이동 accounts.google.com 2. 프로젝트를 하나 생성한다. 3. User Type을 설정한다. (1단계에서 이메일만 필수적으로 작성해야 해서 작성하고 그 뒤에 적어야 하는 곳들은 모두 skip) 4. 사용자 인증 정보 만들기 여기서 https로 요청했는데 그러면 로컬 프로젝트용으로는 오류가 난다. http로 해야 한다. --------------..

[5강] 메소드 단위로 권한 설정하기 - @Secured

이렇게 핑크 박스의 코드처럼 설정해 주면 이 프로젝트 전역에 권한을 설정해 줄 수 있다. 그런데 이번 강의에서 배운 내용은 하나의 메소드(요청, url) 단위로 권한을 설정해 줄 수 있는 방법에 대해 알아보았다. @Secured @Secured("ROLE_ADMIN") @GetMapping("/info") public @ResponseBody String info() { return "개인정보"; } "/info"에 접근하려면 유저의 Authorities이 ROLE_ADMIN이어야 한다. 이렇게 함수 단위로 접근할 수 있다. @PreAuthorize @PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_MANAGER')") @GetMapping("/data") ..

[4강] 스프링 시큐리티 로그인 구현 - '?error' 발생

🏕️상황 강의를 따라 하던 중에 회원가입은 정상적으로 작동했으나 '로그인'에서 로그인이 되지 않고 아래의 사진처럼 오류가 발생했다. 미쳐버릴 지경이었다. 콘솔에는 아무런 오류도 찍히지 않고, 심지어 두 번째 사진처럼 사용자 정보도 굉장히 잘 찾아지는데 왜 로그인만 안 되는지 답답하고, 막막했다. 진짜로 두 번째 사진처럼 콘솔에는 아무런 오류도 없었다. 💦과정 1. 관련이 있는 클래스들을 돌아다니며 코드를 수정해보았지만 무용지물.... 2. WebSecurityConfigurerAdapter의 deprecated로 인한 코드 수정.... 강의에서는 WebSecurityConfigurerAdapter를 사용하여 코드상에 해당 부분에 줄이 그어져 있는(deprecated) 상황이었다. 그래서 검색해보니 인프런..

[3강][4강] spring security 회원가입/로그인

[3강] @Autowired private UserRepository userRepository; @PostMapping({"/join"}) //securityConfig 파일 생성 후 작동안함. public String join(User user) { System.out.println(user); user.setRole("ROLE_USER"); String rowPassword = user.getPassword(); String encPassword = bCryptPasswordEncoder.encode(rowPassword); user.setPassword(encPassword); userRepository.save(user); return "redirect:/loginForm"; } 위의 과정은 로..

[2강] spring security 설정 (예제)

@Configuration // IoC 빈(bean)을 등록 @EnableWebSecurity // 필터 체인 관리 시작 어노테이션 public class SecurityConfig extends WebSecurityConfigurerAdapter{ @Override protected void configure(HttpSecurity http) throws Exception { http.csrf().disable(); http.authorizeRequests() .antMatchers("/user/**").authenticated() .antMatchers("/admin/**").access("hasRole('ROLE_ADMIN') or hasRole('ROLE_USER')") //.antMatchers..

[1강] spring security 환경설정 &⭐새로운 사실

1) 인텔리제이에서 maven 프로젝트를 아래와 같은 의존성을 추가시켜 생성. 원래는 STS로 진행하는 방식이나 계속해서 설치 오류가 발생해서, 거기서 너무 오랜 시간을 보낼 수 없기 때문에 기존에 사용하고 있던 인텔리제이로 진행해 보기로 했다. 2) Mysql에 아래의 코드를 입력한다. create user 'cos'@'%' identified by 'cos1234'; GRANT ALL PRIVILEGES ON *.* TO 'cos'@'%'; create database security; use security; create user 'cos'@'%' identified by 'cos1234'; 이 명령어는 Mysql에 새로운 사용자를 생성하는 명령어이다. 'cos'는 사용자 이름을 나타내며, '%'는..

🚨ERROR -[aws] org.springframework.http.converter.HttpMessageNotWritableException: Could not write JSON: Null key for a Map not allowed in JSON

🏕️상황 학교 상세보기 페이지에 들어가면 커리큘럼을 확인할 수 있도록 하는 기능을 구현하는 과정 중이었다. 분명히 로컬에서 기능이 문제없이 잘 돌아가는 것을 확인을 한 후에 aws서버에 올리고, db에 데이터를 insert 하고 나서 실행을 시키니 아래와 같은 오류가 프로젝트 실행 중에 발생하였다. 환장할 노릇이었다. 왜 로컬에서는 잘 되는데 여기서는 이런 오류가 발생하는 것인지 Completed initialization in 3 ms 2023-09-13 04:04:53.035 WARN 325428 --- [nio-8080-exec-2] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.http.converter.HttpM..

🚨ERROR - [spring boot] java.lang.NullPointerException : null

🏕️상황 오류 화면을 보면 알겠지만 Controller에서 null 오류가 발생했다. 눈을 씻고 찾아봐도 코드상에 문제가 전혀 없었고, 심지어 복잡한 코드도 아니었음. 🗝️해결 위처럼 컨트롤러 필드에다가 저렇게 static을 사용해서 의존성 주입을 해버린 것이다.... 왜 사용하면 안 되느냐? 멀티스레딩 문제: static 필드는 클래스 수준에서 공유되므로 여러 스레드에서 동시에 접근할 수 있습니다. 웹 애플리케이션은 다수의 요청을 동시에 처리하는 환경에서 동작하므로 멀티스레딩 문제가 발생할 수 있습니다. 이로 인해 데이터 일관성 문제나 경합 상태 등이 발생할 수 있습니다. 의존성 주입(Dependency Injection) 문제: Spring과 같은 프레임워크에서는 의존성 주입(DI)을 통해 필드를 주..

🚨ERROR - org.springframework.core.convert.ConverterNotFoundException

🏕️상황 ConverterNotFoundException: No converter found capable of converting from type [hanium.highwayspring.school.Curriculum.Curriculum] to type [java.lang.String]] with root cause org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type [hanium.highwayspring.school.Curriculum.Curriculum] to type [java.lang.String] at org.springframework.core..

🤦🏻‍♀️고민하기 - 추천 시스템 구축 (특성화고 추천 )

🏕️상황 현재 프로젝트는 로그인, 리뷰작성, 이미지 포함 게시판 정도까지 구현이 되었기 때문에 이제 무슨 기능을 구현할지 고민을 하는 시간을 갖게 되었는데.... 지금의 프로젝트가 그렇다 할 메인 기능이 없기 때문에 이제 CRUD 정도로 만들 수 있는 기능정도에서 머무를 수는 없었다. 얼른 우리 프로젝트를 좀 더 풍성하고, 다른 사람에게 소개할 때 더 이상 수그러들 필요가 없는 그런 프로젝트를 만들고 싶었고 백엔드 개발자로서 더 성장하고, 더 다양한 기능을 만들어 본 실력 있는 개발자가 되기 위해서는 더 이상 미루면 안 된다는 생각이 들었다. 이런 기회가 아니면 언제 또 [추천 시스템]을 내 손으로 직접 만들어볼지 모르니까~~ 굉장히 욕심이 난다 !!!! 💦과정 하지만 난 이런 걸 만들어 본 적도 없고,..