작성
·
375
0
안녕하세요. 강사님 강의 잘 듣고 있습니다~
따라 하면서 해보고 싶은 게 있었는데 잘 안되서 방법이 있는지 질문드려요.
해보고 싶었던 거는 user-service.yml의 값들이 바뀌었을 떄 actuator/refresh 하여 바뀐 정보로 업데이트하고 바뀐 정보로 접속해 보고 싶었는데 안되더라고요.
username을 바꿨을 때 refresh 로 POST 요청하면 username이 바뀌었다고 응답이 오는데 password는 문자열이라 그런지 바뀌었다고 바뀌었다고 응답도 안 오더라고요.
그래서 username으로 테스트 해봤는데, username을 다른 걸로 바꾸고 refresh 하고 바뀐 username으로 접속해도 안 되고 이전 username으로 접속은 되더라고요. 혹시 이런 경우에 가능케 하는 방법이 있을까요?
답변 1
3
안녕하세요, 이도원입니다.
답변이 늦어 죄송합니다.
올려주신 질문의 내용을 보면, H2 DB의 username과 password를 변경하고 actuator/refresh를 실행했을 때 반영되는지에 대한 내용인 것 같습니다. 먼저 username과 password모두 text 파일을 변경하고, actuator/refresh를 실행하여 반영된 값을 가져올 수 있습니다. 아래 actuator/refresh의 결과 화면을 보면, spring.datasource.password 값이 변경되었음을 알수 있으며, 실제로 값을 확인해 봐도 변경된 데이터로 잘 가져오고 있습니다. (참고로 password는 '' 값에서 'test'로 변경하였습니다)
다만, H2 DB의 username과 password를 user-service 애플리케이션이 기동되면, H2 DB에 인증 정보를 전달하여 서버를 기동하게 됩니다. 즉, user-service의 기동과 함께 이미 username과 password가 지정되었습니다. 그런데, actuator/refresh를 실행하게 되면, 이것은 user-service 자체를 재기동하는 것이 아니라, configuration정보만을 갱신하는 것이기 때문에, 실제 값은 변경이 되어도, H2 DB에 변경된 데이터를 다시 전달하지는 않습니다. 따라서, H2 DB는 초기에 지정된 username과 password 접속해야 합니다. 그 외 다른 정보는 동적으로 변경하실 수 있을 겁니다.
감사합니다.