我正在将Keycloak与Spring Boot和Kotlin一起使用,我正在使用keycloak.json的最低设置,它看起来像这样。并带有注释 @PreAuthorize(“ isAuthenticated()”)以保护我的端点。 密钥斗篷的设置是 客户身份验证器=客户ID和机密 启用标准流程。
{
"realm": "dev",
"realm-public-key" : " public key here ",
"auth-server-url": "http://localhost:8085/auth/",
"ssl-required": "external",
"resource": "test_service",
"verify-token-audience": true,
"credentials": {
"secret": " secrete here"
},
"use-resource-role-mappings": true,
"confidential-port": 0
}
并且我仅在文档部分“ 2.6.2。验证访问令牌”中使用“ Keycloak-spring-security-adapter”,它说我可以使用JWT使用公钥在本地验证访问令牌,但是不能在Java或Kotlin中找不到示例,目前按照我的理解通过将其发送到Keycloak服务器来完成验证,我如何才能停止这样做并在本地(脱机)验证令牌,而无需使用公共联系服务器关键,如果您可以为我指明正确的方向,或者您知道示例或博客,那将非常有帮助。
答案 0 :(得分:1)
作为配置的一部分,您可以创建一个org.springframework.security.oauth2.provider.token.store.JwtAccessTokenConverter Bean并通过其
传递公钥。setVerifierKey(字符串键)
方法