Skip to content

Commit 20cf237

Browse files
committed
rename todo-ui to todo-frontend
1 parent 5224910 commit 20cf237

30 files changed

+105
-48
lines changed
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
name: Todo Frontend
2+
on:
3+
push:
4+
branches:
5+
- main
6+
paths:
7+
- todo-frontend/src/**
8+
- todo-frontend/pom.xml
9+
- .github/workflows/*
10+
pull_request:
11+
branches:
12+
- main
13+
paths:
14+
- todo-frontend/src/**
15+
- todo-frontend/pom.xml
16+
- .github/workflows/*
17+
jobs:
18+
unit-test:
19+
uses: making/oauth2-sso-demo/.github/workflows/unit-test.yaml@main
20+
with:
21+
pom_dir: todo-frontend
22+
build-oci-image-jvm-amd64:
23+
needs: unit-test
24+
uses: making/oauth2-sso-demo/.github/workflows/build-oci-image-jvm.yaml@main
25+
with:
26+
pom_dir: todo-frontend
27+
image_name: todo-frontend_jvm_amd64
28+
image_file: todo-frontend_jvm_amd64.yaml
29+
runs_on: ubuntu-latest
30+
build-oci-image-jvm-aarch64:
31+
needs: unit-test
32+
uses: making/oauth2-sso-demo/.github/workflows/build-oci-image-jvm.yaml@main
33+
with:
34+
pom_dir: todo-frontend
35+
image_name: todo-frontend_jvm_aarch64
36+
image_file: todo-frontend_jvm_aarch64.yaml
37+
runs_on: raspberrypi
38+
push-multi-arch-image-jvm:
39+
needs:
40+
- build-oci-image-jvm-amd64
41+
- build-oci-image-jvm-aarch64
42+
uses: making/oauth2-sso-demo/.github/workflows/push-multi-arch-image.yaml@main
43+
with:
44+
prefix: jvm
45+
pom_dir: todo-frontend
46+
save-image-jvm-amd64:
47+
needs: build-oci-image-jvm-amd64
48+
uses: making/workflows/.github/workflows/save-images.yaml@main
49+
with:
50+
image_name: todo-frontend_jvm_amd64
51+
image_file: todo-frontend_jvm_amd64.yaml
52+
save-image-jvm-aarch64:
53+
needs: build-oci-image-jvm-aarch64
54+
uses: making/workflows/.github/workflows/save-images.yaml@main
55+
with:
56+
image_name: todo-frontend_jvm_aarch64
57+
image_file: todo-frontend_jvm_aarch64.yaml

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,19 @@ This demo app consists of following three components:
44

55
* [Authorization](authorization) ... OAuth2/OIDC Authorization Server. Using [Spring Authorization Server](https://docs.spring.io/spring-authorization-server/reference/index.html).
66
* [Todo API](todo-api) ... OAuth2 Resource Server. Provides REST API. Using [Spring Security's OAuth2 Resource Server](https://docs.spring.io/spring-security/reference/6.4/servlet/oauth2/resource-server/index.html).
7-
* [Todo UI](todo-ui) ... Web UI (React) backed by [Spring Security's OAuth2 Login](https://docs.spring.io/spring-security/reference/6.4/servlet/oauth2/login/index.html) + [OAuth 2.0 Client](https://docs.spring.io/spring-security/reference/6.4/servlet/oauth2/client/index.html).
7+
* [Todo Frontend](todo-frontend) ... Web UI (React) backed by [Spring Security's OAuth2 Login](https://docs.spring.io/spring-security/reference/6.4/servlet/oauth2/login/index.html) + [OAuth 2.0 Client](https://docs.spring.io/spring-security/reference/6.4/servlet/oauth2/client/index.html).
88

99
## How to run
1010

1111
Java 21+ and docker are required.
1212

1313
```
14-
./mvnw clean spring-boot:run -f authorization -Dspring-boot.run.arguments="--spring.docker.compose.enabled=true --spring.docker.compose.file=$(pwd)/compose.yaml"
15-
./mvnw clean spring-boot:run -f todo-api -Dspring-boot.run.arguments="--spring.docker.compose.enabled=true --spring.docker.compose.file=$(pwd)/compose.yaml"
16-
./mvnw clean spring-boot:run -f todo-ui -Dspring-boot.run.arguments="--spring.docker.compose.enabled=true --spring.docker.compose.file=$(pwd)/compose.yaml"
14+
./mvnw spring-boot:run -f authorization -Dspring-boot.run.arguments="--spring.docker.compose.enabled=true --spring.docker.compose.file=$(pwd)/compose.yaml"
15+
./mvnw spring-boot:run -f todo-api -Dspring-boot.run.arguments="--spring.docker.compose.enabled=true --spring.docker.compose.file=$(pwd)/compose.yaml"
16+
./mvnw spring-boot:run -f todo-frontend -Dspring-boot.run.arguments="--spring.docker.compose.enabled=true --spring.docker.compose.file=$(pwd)/compose.yaml"
1717
```
1818

19-
Visit http://localhost:8080 (todo-ui). The first time you visit, you will be redirected to http://127.0.0.1:9000 (authorization).
19+
Visit http://localhost:8080 (todo-frontend). The first time you visit, you will be redirected to http://127.0.0.1:9000 (authorization).
2020

2121
<img width="1024" alt="image" src="https://github.com/user-attachments/assets/5f2764a8-4fde-41be-b0e6-d21f04d7fdeb">
2222

authorization/src/main/resources/application.properties

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@ spring.docker.compose.lifecycle-management=start_only
1818
spring.mustache.check-template-location=false
1919
spring.mustache.servlet.expose-request-attributes=true
2020
spring.mustache.servlet.expose-session-attributes=true
21-
spring.security.oauth2.authorizationserver.client.todo-ui.registration.authorization-grant-types=authorization_code,refresh_token
22-
spring.security.oauth2.authorizationserver.client.todo-ui.registration.client-authentication-methods=client_secret_basic
23-
spring.security.oauth2.authorizationserver.client.todo-ui.registration.client-id=todo-ui
24-
spring.security.oauth2.authorizationserver.client.todo-ui.registration.client-secret={noop}secret
25-
spring.security.oauth2.authorizationserver.client.todo-ui.registration.post-logout-redirect-uris=http://localhost:8080
26-
spring.security.oauth2.authorizationserver.client.todo-ui.registration.redirect-uris=http://localhost:8080/login/oauth2/code/todo-ui
27-
spring.security.oauth2.authorizationserver.client.todo-ui.registration.scopes=openid,todo:read,todo:write
28-
spring.security.oauth2.authorizationserver.client.todo-ui.require-authorization-consent=false
21+
spring.security.oauth2.authorizationserver.client.todo-frontend.registration.authorization-grant-types=authorization_code,refresh_token
22+
spring.security.oauth2.authorizationserver.client.todo-frontend.registration.client-authentication-methods=client_secret_basic
23+
spring.security.oauth2.authorizationserver.client.todo-frontend.registration.client-id=todo-frontend
24+
spring.security.oauth2.authorizationserver.client.todo-frontend.registration.client-secret={noop}secret
25+
spring.security.oauth2.authorizationserver.client.todo-frontend.registration.post-logout-redirect-uris=http://localhost:8080
26+
spring.security.oauth2.authorizationserver.client.todo-frontend.registration.redirect-uris=http://localhost:8080/login/oauth2/code/todo-frontend
27+
spring.security.oauth2.authorizationserver.client.todo-frontend.registration.scopes=openid,todo:read,todo:write
28+
spring.security.oauth2.authorizationserver.client.todo-frontend.require-authorization-consent=false
2929
spring.security.oauth2.authorizationserver.client.dex-example-app.registration.authorization-grant-types=authorization_code,refresh_token
3030
spring.security.oauth2.authorizationserver.client.dex-example-app.registration.client-authentication-methods=client_secret_basic
3131
spring.security.oauth2.authorizationserver.client.dex-example-app.registration.client-id=dex-example-app

authorization/src/test/java/lol/maki/dev/authorization/AuthorizationApplicationTests.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,8 @@ void shouldObtainAccessTokenWithAuthorizationCodeFlow() {
7676
ResponseEntity<Void> redirectToCode = this.restClient.get()
7777
.uri("/oauth2/authorize",
7878
uri -> uri.queryParam("response_type", "code")
79-
.queryParam("client_id", "todo-ui")
80-
.queryParam("redirect_uri", "http://localhost:8080/login/oauth2/code/todo-ui")
79+
.queryParam("client_id", "todo-frontend")
80+
.queryParam("redirect_uri", "http://localhost:8080/login/oauth2/code/todo-frontend")
8181
.queryParam("scope", "todo:read todo:write openid")
8282
.build())
8383
.cookie("JSESSIONID", jsessionId(login))
@@ -91,9 +91,9 @@ void shouldObtainAccessTokenWithAuthorizationCodeFlow() {
9191
ResponseEntity<JsonNode> token = restClient.post()
9292
.uri("/oauth2/token")
9393
.contentType(MediaType.APPLICATION_FORM_URLENCODED)
94-
.headers(httpHeaders -> httpHeaders.setBasicAuth("todo-ui", "secret"))
94+
.headers(httpHeaders -> httpHeaders.setBasicAuth("todo-frontend", "secret"))
9595
.body("grant_type=authorization_code&code=%s&redirect_uri=%s".formatted(code,
96-
"http://localhost:8080/login/oauth2/code/todo-ui"))
96+
"http://localhost:8080/login/oauth2/code/todo-frontend"))
9797
.retrieve()
9898
.toEntity(JsonNode.class);
9999
assertThat(token.getStatusCode()).isEqualTo(HttpStatus.OK);

todo-api/src/test/java/lol/maki/dev/todo/TestcontainersConfiguration.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ GenericContainer<?> authorizationServer() {
2222
"/authorization.jar")
2323
.withCommand("java", "-jar", "/authorization.jar", "[email protected]",
2424
"--spring.security.user.password=test",
25-
"--spring.security.oauth2.authorizationserver.client.todo-ui.registration.client-id=todo-ui",
26-
"--spring.security.oauth2.authorizationserver.client.todo-ui.registration.client-secret={noop}secret",
25+
"--spring.security.oauth2.authorizationserver.client.todo-frontend.registration.client-id=todo-frontend",
26+
"--spring.security.oauth2.authorizationserver.client.todo-frontend.registration.client-secret={noop}secret",
2727
"--management.zipkin.tracing.export.enabled=false", "--spring.main.banner-mode=off")
2828
.withExposedPorts(9000)
2929
.waitingFor(Wait.forHttp("/actuator/health").forPort(9000).withStartupTimeout(Duration.ofSeconds(10)))

todo-api/src/test/java/lol/maki/dev/todo/TodoApiApplicationTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ void setUp(@LocalServerPort int port, @Autowired RestClient.Builder builder,
5252
/* no-op */})
5353
.build();
5454
this.accessTokenSupplier = scopes -> OAuth2.authorizationCodeFlow(URI.create(issuerUrl), rest,
55-
new OAuth2.User("[email protected]", "test"), new OAuth2.Client("todo-ui", "secret"),
56-
URI.create("http://localhost:8080/login/oauth2/code/todo-ui"), scopes);
55+
new OAuth2.User("[email protected]", "test"), new OAuth2.Client("todo-frontend", "secret"),
56+
URI.create("http://localhost:8080/login/oauth2/code/todo-frontend"), scopes);
5757
this.restClient = builder.baseUrl("http://localhost:" + port).build();
5858
}
5959

27 Bytes
Binary file not shown.
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)