Post

spring cloud gateway security sample 분석

작성목적

https://spring.io/blog/2019/08/16/securing-services-with-spring-cloud-gateway

..에서
spring cloud + security(jwt) + REST service 의 서버 빌드와 초기 구조 구현을 위함
SSO(security, jwt token privider), gateway, registry, service 조합 구현함.

실행

\spring-cloud-gateway-demo\security-gateway 에서 build.sh 실행

buld.sh

windows라면 git bash로 위 실행소스 경로에서 실행 가능

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$ ./build.sh
Performing a clean Maven build
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] secured-service                                                    [jar]
[INFO] security-gateway                                                   [jar]
...
...
#7 exporting to image
#7 exporting layers 0.1s done
#7 writing image sha256:053195b1e74509918917e0665262ba330bfb93caf211094b8cecf953989d87fc done
#7 naming to docker.io/library/scg-demo-secured-service done
#7 DONE 0.1s

What's Next?
  View a summary of image vulnerabilities and recommendations → docker scout quickview

docker-compose up

1
2
3
4
5
$ docker-compose up
time="2024-04-29T09:22:22+09:00" level=warning 
...
 Container gateway  Creating
Error response from daemon: Conflict. The container name "/gateway" is already in use by container "1def8f41aa138836a7dc48b4965b3b56cb23553a2847c763638bd5b66a1f0eb7". You have to remove (or rename) that container to be able to reuse that name.

docker 구동 확인

docker-desktop에서 정상 구동 확인함.

security-gateway group 들어가면 각 서버별로 log 확인 가능함

브라우저에서 돌려보기

시크릿 창에서 http://localhost:8080/resource 들어감

id는 user1 pw는 password


로그인 통과 시 권한 확인 창이 뜸.


권한 확인 시 resource access 처리됨.
subject Id는 실행시 마다 다를 수 있음.


이후 http://localhost:8080 들어가면 아래처럼 로긴 정보 나오도록 구현되어 있음.

This post is licensed under CC BY 4.0 by the author.