게시글
질문&답변
2023.09.12
API 테스트로 전환하기 영상에서..
하... 찾앗다 ㅠㅠ
- 17
- 3
- 1.2K
질문&답변
2023.07.02
Redisson import
아마 버전 문제인거 같은데요, implementation 'org.redisson:redisson-spring-boot-starter:3.22.1' 해당 redisson정보로 등록해서 돌려보면 문제가 없거든요? 그런데 3.16.8로 버전만 변경해서 돌리면 또 bean이 없다는 에러가 나옵니다. 예상하건데 아마 하위 버전에서는 configuration을 직접 설정해줘야 하나봅니다.
- 0
- 3
- 825
질문&답변
2023.07.01
섹션 3에서의 모든 테스트 케이스가 동작하지 않는데 문제점을 모르겠습니다.
에러 찍어보니까 다음과 같은 에러가 저는 나오더라고요 @Transactional public void decrease(Long id, Long quantity) { try { lockRepository.getLock(id.toString()); stockService.decrease(id, quantity); } catch (Exception e){ System.out.println(e); }finally { lockRepository.releaseLock(id.toString()); } } org.springframework.dao.InvalidDataAccessApiUsageException: For queries with named parameters you need to provide names for method parameters; Use @Param for query method parameters, or when on Java 8+ use the javac flag -parameters 즉, native query 선언 시 @Param을 설정해 줘야한다는 말입니다. public interface LockRepository extends JpaRepository { @Query(value = "select get_lock(:key, 3000)", nativeQuery = true) void getLock(@Param("key") String key); @Query(value = "select release_lock(:key)", nativeQuery = true) void releaseLock(@Param("key")String key); } 이렇게 하면 아마 되지 않을까 생각합니다.
- 0
- 3
- 476
질문&답변
2023.06.10
Window 환경 Docker Volume 코드변경 반영 안될 때
와... 너무 감사합니다.
- 7
- 7
- 914
질문&답변
2023.06.10
docker-compose up 시 오류
나도 포기;;;싸다고 들엇는데 생각보다 다뤄지지 않은 오류가 너무 많네요. 끽해봐야 OS 몇개 안되는것도 그렇고3년이면 노드 버전이 몇인데 아직도 이거 리뉴얼을 안하다니 좀 너무하다는 생각도 듭니다.
- 0
- 7
- 2K
질문&답변
2022.12.06
Users Microservice - AuthenticationFilter 추가 | 질문있습니다.
우선은 무시하고 그냥 동이랗게 진행하시고, 나중에 찾아서 해보시길 바랍니다.그거 하다 보면 엄청많은 문제에 직면하면서 본래 강의를 못들을겁니다... 저는 전에 하다가 죽을뻔햇습니다...정 궁금하시면 여기 사이트 참고하시면 됩니다.https://spring.io/blog/2022/02/21/spring-security-without-the-websecurityconfigureradapter저는 많은 시행착오와 위의 사이트 참고, 그리고 다른 spring security 강의를 들어서 다음과같이 수정이 가능햇습니다.! package com.example.userservice.security; import com.example.userservice.jpa.UserRepository; import com.example.userservice.service.UserService; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Lazy; import org.springframework.core.env.Environment; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.web.SecurityFilterChain; @Configuration @EnableWebSecurity public class SecurityConfig { private UserService userService; private AuthenticationConfiguration authenticationConfiguration; private Environment env; @Autowired public void setUserService(@Lazy UserService userService) { this.userService = userService; } @Autowired public void setAuthenticationConfiguration(AuthenticationConfiguration authenticationConfiguration) { this.authenticationConfiguration = authenticationConfiguration; } @Autowired public void setEnv(Environment env) { this.env = env; } @Bean public AuthenticationManager authenticationManager() throws Exception{ return this.authenticationConfiguration.getAuthenticationManager(); } @Bean public BCryptPasswordEncoder passwordEncoder() { return new BCryptPasswordEncoder(); } @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http.csrf().disable(); // http.authorizeRequests().antMatchers("/users/**").permitAll(); http.authorizeRequests().antMatchers("/**") .permitAll().and().addFilter(getAuthenticationFiler()); // .antMatchers("/**") // .hasIpAddress("192.168.219.101") // .and() // .addFilter(getAuthenticationFiler()); http.headers().frameOptions().disable(); return http.build(); } @Bean public AuthenticationFilter getAuthenticationFiler() throws Exception { AuthenticationFilter authenticationFilter = new AuthenticationFilter(); authenticationFilter.setAuthenticationManager(authenticationManager()); return authenticationFilter; } @Bean AuthenticationManager authenticationManager(AuthenticationManagerBuilder builder) throws Exception { return builder.userDetailsService(userService).passwordEncoder(passwordEncoder()).and().build(); } }기본적으로 deprecated 된 방식 말고 새로운 방식은 bean을 중점적으로 등록하는 방식으로 진행됩니다. 그렇기 때문에 어떤 bean을 수정해야 하는지 spring security 를 좀 아셔야합니다.
- 1
- 1
- 1.3K
고민있어요
2022.06.04 16:24
이번 최적화 강의....
- 1
- 0
- 134
고민있어요
2022.04.25 22:40
재미있네요...
- 0
- 0
- 136
고민있어요
2022.04.23 21:50
강의를 들으면 들을수록...
- 0
- 0
- 198
고민있어요
2022.04.04 10:37
와 진짜
- 1
- 1
- 166