Users Microservice - AuthenticationFilter 추가 | 질문있습니다.
1414
작성한 질문수 1
최신버전의 스프링부트에서 WebSecurityConfigurerAdapter가 더이상 지원하지 않는다고 하는데 WebSecurity클래스의 코드를 어떻게 작성해야 하나요? 빈 등록 하라고 하는데 정확히 어떤식으로 진행해야할지 몰라서 이렇게 남깁니다. 항상 좋은 강의 감사합니다.
답변 1
2
우선은 무시하고 그냥 동이랗게 진행하시고, 나중에 찾아서 해보시길 바랍니다.
그거 하다 보면 엄청많은 문제에 직면하면서 본래 강의를 못들을겁니다... 저는 전에 하다가 죽을뻔햇습니다...
정 궁금하시면 여기 사이트 참고하시면 됩니다.
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 를 좀 아셔야합니다.
kafka 업데이트 강의 듣고 시포요
0
91
2
강의 교안
0
79
2
마이크로서비스간 통신 시, 인증 처리
0
87
2
api gateway 에서 인증 처리
0
66
1
섹션 19 질문드립니다
0
60
2
강의 자료 업데이트
0
87
2
부하분산 강의 섹션
0
59
1
강의자료는 어디에서?
0
77
2
강의 자료는 어디서 다운 받을 수 있나요?
0
114
2
전체 사용자 조회시 오류
0
60
1
혹시 pk 외 별도의 id 를 부여한 이유가 있을까요 ??
0
113
2
학습 방향
0
96
2
카프카 커넥터 사용 목적 문의
0
87
2
kafka 강의
0
109
2
서비스 디스커버리 종류
0
87
2
강의 자료에 대해서 궁금해요
0
119
2
GlobalFilter, LoggingFilter가 동작하지 않습니다.
0
91
2
Kafka Source Connect 버전 에러
0
90
2
소스커넥터는 사용안한 거 맞죠?
0
82
2
강의자료 업데이트 문의
0
97
2
강의에서 BCryptPasswordEncoder 에 역할(5-2)
0
59
1
강의 업데이트 계획이 궁금합니다.
0
114
2
MSA 애플리케이션에 Spring Web과 Spring Data JPA를 사용하는 것이 바람직한지 궁금합니다. (MSA 설계와 관련된 질문입니다)
0
163
2
어떤 것이 업데이트 된 건가요?
0
167
2





