向后端发送无效承载令牌时如何记录
Posted
技术标签:
【中文标题】向后端发送无效承载令牌时如何记录【英文标题】:How To Log When Invalid Bearer Token Is Sent To Backend 【发布时间】:2021-01-29 05:43:10 【问题描述】:我有一个 Jhipster 构建的后端,并希望在请求发送无效身份验证承载令牌时进行记录。
目前使用 Postman,我可以发送一个有效的令牌来获取我需要的信息,并且记录如下:
2020-10-14 10:11:37.591 DEBUG 4132 --- [ XNIO-1 task-1] s.n.www.protocol.http.HttpURLConnection : sun.net.www.MessageHeader@77674d5d5 pairs: GET /auth/realms/p
latform-development/protocol/openid-connect/certs HTTP/1.1: nullAccept: application/json, application/jwk-set+jsonUser-Agent: Java/11.0.7Host: sso.eva-int.c
omConnection: keep-alive
2020-10-14 10:11:37.630 DEBUG 4132 --- [ XNIO-1 task-1] s.n.www.protocol.http.HttpURLConnection : sun.net.www.MessageHeader@2527b0a66 pairs: null: HTTP/1.1 200
OKConnection: keep-aliveCache-Control: no-cacheContent-Type: application/jsonContent-Length: 1703Date: Wed, 14 Oct 2020 17:11:36 GMT
2020-10-14 10:11:37.649 DEBUG 4132 --- [ XNIO-1 task-1] jdk.event.security : X509Certificate: Alg:SHA256withRSA, Serial:17251f0f612, Subjec
t:CN=platform-development, Issuer:CN=platform-development, Key type:RSA, Length:2048, Cert Id:1603036153, Valid from:5/26/20, 10:02 AM, Valid until:5/26/30, 10:04
AM
当我发送一个无效令牌时,我会收到一个状态为 401 的响应,并且标题显示“invalid_token”,这很好,但应用程序中没有记录任何内容。
处理这个问题的代码似乎来自 Spring Security 依赖项。有没有办法让它注销更多信息?
【问题讨论】:
您选择了哪种身份验证类型? 【参考方案1】:Spring Security 有自己的日志记录,您只需要启用它即可。
将以下内容放入您的 application.properties:
logging.level.org.springframework.security=DEBUG
大多数其他 Spring 模块也是如此。
或
尝试在日志配置中设置属性,例如回退。
这也是 application.yml 版本:
logging:
level:
org:
springframework:
security: DEBUG
【讨论】:
在我的 application.yml 中包含该输出时,我没有看到任何其他输出。在安全配置中使用@EnableWebSecurity(debug = true)
为我提供了所有请求的安全过滤器链输出,但除此之外仍然没有记录无效令牌。
您所做的是不同的事情,它不会启用您的 Spring 安全日志。请按照以下链接更好地了解 Spring 日志记录。 Spring logiging tutorial
因此,当我使用参数-Dspring-boot.run.arguments=--logging.level.org.springframework.security=DEBUG
运行应用程序时,我会得到我正在寻找的额外日志记录。把它放在我的 application.yml 中并没有给出输出。
这最终起作用了,但我把它放在了错误的 application.yml 中。谢谢!以上是关于向后端发送无效承载令牌时如何记录的主要内容,如果未能解决你的问题,请参考以下文章
如何暂停http请求,直到在localstorage中收到并记录令牌?