21.08.31 01:19 작성
·
452
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
2021. 09. 25. 21:39
안녕하세요, 이도원입니다.
Config-service에 있는 내용을 Envionment 객체를 통해 가져오는 방법 외에, @Value("${token.secret}")와 깉이 Annotaion을 통해 가져올 경우에는 해당 클래스에 @RefreshScope 설정을 추가해야, Actuator의 busrefresh가 적용됩니다. 참고하시기 바랍니다.
감사합니다.
0
0
2021. 09. 02. 07:30
안녕하세요, 이도원입니다.
먼저 @Value와 Environment는 동일한 작업을 하기 때문에, 어떤것을 사용하셔도 됩니다.
변경된 token.secret 정보를 busreferesh를 통해 업데이트 해 주셨다면, 해당 서비스(user-service)에서 변경된 토큰 값이 출력되는지 확인해 보시기 바랍니다. 강의에서도 health_check 메소드에서 출력하고 있으니 참고해 보시기 바랍니다. 변경된 token.secret을 확인하기 위해서, apigateway-service의 인증단계를 IntelliJ의 디버깅 모드로 해당 값이 참조되는지 확인해 보시는 것도 좋을 것 같습니다. 아래 이미지는 변경된 token.secret을 테스트하기 위해, 다시 로그인을 시도했을 때, 디버깅 모드로 확인한 결과 이미지 입니다.
감사합니다.
2021. 09. 23. 23:58
안녕하세요, 이도원입니다.
아래 게시물에 대한 답변 확인이 늦었네요. 작업하신 내용을 아래 이메일로 보내주시면, 해당 코드로 재현해 보도록 하겠습니다.
edowon0623@gmail.com
감사합니다.
2021. 09. 23. 23:18
다시 말씀드리지만 갱신이 안되는데요...