java 86

[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 정도로 만들 수 있는 기능정도에서 머무를 수는 없었다. 얼른 우리 프로젝트를 좀 더 풍성하고, 다른 사람에게 소개할 때 더 이상 수그러들 필요가 없는 그런 프로젝트를 만들고 싶었고 백엔드 개발자로서 더 성장하고, 더 다양한 기능을 만들어 본 실력 있는 개발자가 되기 위해서는 더 이상 미루면 안 된다는 생각이 들었다. 이런 기회가 아니면 언제 또 [추천 시스템]을 내 손으로 직접 만들어볼지 모르니까~~ 굉장히 욕심이 난다 !!!! 💦과정 하지만 난 이런 걸 만들어 본 적도 없고,..

[aws] com.amazonaws.services.s3.model.AmazonS3Exception:

🏕️상황 프런트 팀원이 해당 사진을 보내주면서 imageurl이 반환이 안 된다고 했다. (맥북에서 캡처를 하니 저렇게 이름이 길어졌다고 했다.) 평상시랑 다른 점(내가 테스트했을 때와 다른 점)이라고 한다면 파일의 이름이 지나치게 길다는 것이다. 그래서 aws 인스턴스에 실행중인 프로젝트의 로그를 확인해 보니 오류가 발생하고 있었다. com.amazonaws.services.s3.model.AmazonS3Exception: The specified key does not exist. (Service: Amazon S3; Status Code: 404; Error Code: NoSuchKey; Request ID: --이 부분은 혹시 몰라 삭제--; S3 Extended Request ID: --이 부분..