Skip to content

Commit 28ff489

Browse files
committed
仅对需要的 HTTP 方法应用解密中间件
1 parent 54de667 commit 28ff489

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

.github/workflows/docker-image.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,6 @@ jobs:
1717
- name: Login docker regsitry
1818
run: docker login -u zlzforever -p ${{ secrets.DOCKER_USER_PASSWORD }}
1919
- name: Build the Docker image
20-
run: docker build . --file Dockerfile --tag zlzforever/security-token-service:20251224.6
20+
run: docker build . --file Dockerfile --tag zlzforever/security-token-service:20251224.7
2121
- name: Publish the Docker image
22-
run: docker push zlzforever/security-token-service:20251224.6
22+
run: docker push zlzforever/security-token-service:20251224.7

src/SecurityTokenService/Middlewares/DecryptRequestMiddleware.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,17 @@ public class DecryptRequestMiddleware(RequestDelegate next)
1717
private static readonly bool ForceEncryptedBody =
1818
bool.Parse(Environment.GetEnvironmentVariable("STS_FORCE_ENCRYPTED_BODY") ?? "false");
1919

20+
private static readonly string[] HttpMethods = ["POST", "PUT", "PATCH"];
21+
2022
public async Task InvokeAsync(HttpContext context, ILogger<DecryptRequestMiddleware> logger)
2123
{
24+
// 仅 POST/PUT/PATCH 需要解密
25+
if (HttpMethods.All(x => !x.Equals(context.Request.Method, StringComparison.InvariantCultureIgnoreCase)))
26+
{
27+
await next(context);
28+
return;
29+
}
30+
2231
var encryptVersion = context.Request.Headers[VersionHeader].ElementAtOrDefault(0);
2332
var encryptKey = context.Request.Headers[KeyHeader].ElementAtOrDefault(0);
2433

0 commit comments

Comments
 (0)