작성
·
473
0
로그에는 리로드 했다는 정보가 보는데
토큰 값이 변경이 안되는데요
bushrefresh
userservice에서
다르게 설정 된건 enviroment 설정이 아니라
@Value("${token.secret}")
설정하고
private AuthenticationFilter getAuthenticationFilter() throws Exception {
// AuthenticationFilter af=new AuthenticationFilter(uService, authenticationManager());
//af.setAuthenticationManager(authenticationManager());
return new AuthenticationFilter( authenticationManager(),uService,expireDate,secret);
}
이렇게 설정했습니다.
busrefres 후
Saw local status change event StatusChangeEvent [timestamp=1630340225266, current=UP, previous=DOWN]
Keys refreshed [token.secret]
DiscoveryClient_USER-SERVICE/user-service:20fe38fa074d7748fb00bd3965a76338 - registration status: 204
DiscoveryClient_USER-SERVICE/user-service:20fe38fa074d7748fb00bd3965a76338: registering service...
DiscoveryClient_USER-SERVICE/user-service:20fe38fa074d7748fb00bd3965a76338 - registration status: 204
이렇게 로그가 나왔습니다.
maven이 아닌 그레들이며implementation 'org.springframework.cloud:spring-cloud-starter-bus-amqp'
2.5.4 스프링 버전 사용중입니다.
답변 3
1
안녕하세요, 이도원입니다.
Config-service에 있는 내용을 Envionment 객체를 통해 가져오는 방법 외에, @Value("${token.secret}")와 깉이 Annotaion을 통해 가져올 경우에는 해당 클래스에 @RefreshScope 설정을 추가해야, Actuator의 busrefresh가 적용됩니다. 참고하시기 바랍니다.
감사합니다.
0
0
안녕하세요, 이도원입니다.
먼저 @Value와 Environment는 동일한 작업을 하기 때문에, 어떤것을 사용하셔도 됩니다.
변경된 token.secret 정보를 busreferesh를 통해 업데이트 해 주셨다면, 해당 서비스(user-service)에서 변경된 토큰 값이 출력되는지 확인해 보시기 바랍니다. 강의에서도 health_check 메소드에서 출력하고 있으니 참고해 보시기 바랍니다. 변경된 token.secret을 확인하기 위해서, apigateway-service의 인증단계를 IntelliJ의 디버깅 모드로 해당 값이 참조되는지 확인해 보시는 것도 좋을 것 같습니다. 아래 이미지는 변경된 token.secret을 테스트하기 위해, 다시 로그인을 시도했을 때, 디버깅 모드로 확인한 결과 이미지 입니다.
감사합니다.
안녕하세요, 이도원입니다.
아래 게시물에 대한 답변 확인이 늦었네요. 작업하신 내용을 아래 이메일로 보내주시면, 해당 코드로 재현해 보도록 하겠습니다.
edowon0623@gmail.com
감사합니다.
다시 말씀드리지만 갱신이 안되는데요...