当前位置: 首页 > 知识库问答 >
问题:

为什么机密和公共客户端需要应用程序来处理Spring/键斗篷适配器中的会话?

景元忠
2023-03-14

浏览KeyClope文档,我们发现了以下声明:

您必须为公共或机密应用程序提供会话身份验证策略bean,其类型应为RegisterSessionAuthenticationStrategy,为仅承载应用程序提供NullAuthenticatedSessionStrategy

最后一部分(仅限承载人)对我们有意义,因为“状态”存在于JWT令牌中,但是我们不理解为什么公共/机密客户端需要应用程序来管理状态,因为keydove仍然提供令牌。

有人能帮我们理解为什么吗?

共有1个答案

柳昊焱
2023-03-14

为了回答你的问题,我建议考虑两种方法

>

  • 只承载公共。例如,将参加标准流程的无状态后端SPA应用程序:加载时重定向到KeyCloak,并在KeyCloak端登录完成时检索令牌对。前端也负责推荐代币。

    像JSP之类的应用程序这样的老式巨石。在这种情况下,不是从前端请求检索访问令牌,而是从内部Http会话(由JSESSIONID等应用程序cookie标识)检索令牌。令牌刷新也由后端执行(键斗篷适配器将在场景后面执行所有魔法)

    我希望现在可以清楚地看到,即使SSO状态在令牌中被封装,令牌对也可以在应用程序状态中被封装(比如会话范围的bean)

    顺便说一句,机密客户端也可以作为仅承载客户端(您可以为它们禁用“标准流”开关)。当您的服务必须以自身而不是用户的名义调用其他服务时,此选项非常有用。请参阅“服务帐户”文档。

  •  类似资料:
    • 我有java REST应用程序,我希望通过keycloak保护。我做了一些测试,应用程序与keycloak servlet过滤器配合良好,但我在Spring Security适配器方面遇到了问题。 钥匙斗篷。json(删除值) 可见,我只需要承载授权,若请求包含有效令牌,那个么若不是http 401,那个么我希望是http 200。我使用了以下xml配置: 到底发生了什么?请求经过身份验证,但成功

    • 我认为对于克隆私有回购,我们需要验证计算机是可信的。但是对于公共回购,如果github的设置中没有添加ssh密钥,不知道为什么git被设计为要求机器提供ssh密钥?

    • 我正试图在我的spring boot应用程序中使用KeyClope。 我想根据REST方法和用户角色限制对特定URL的访问。 在下面的示例中,具有或角色的用户可以执行GET,而具有或角色的用户可以执行POST、PUT或DELETE。 不幸的是,此配置允许任何经过身份验证的用户访问/api/日历URL。我做错了什么?

    • 我想通过postman中的api将角色添加到特定客户端密钥斗篷中的用户,但我得到了“错误”:“client not Found”这个URL:post-http://localhost:8080/auth/admin/realms/{realmName}/users/{userId}/role-mappings/clients/{clientId} 本机构:

    • 我试着去理解Spring是怎么跟所有的事情联系在一起的。然而,我不明白为什么在单元测试spring代码时使用mockito?spring不能处理与mockito相同的DI吗?莫基托贡献了什么是纯泉所不可能做到的? 澄清:我的想法是,我可以使用一个不同的应用程序上下文来进行测试,在这里创建我需要的存根bean作为虚拟对象。

    • 问题内容: 我花了几天又几天尝试为我的Spring / JPA(Hibernate)集成测试建立一个有效的数据库连接,对神秘的“找不到数据库上下文”错误进行故障排除,但最终使它正常工作,但是我不明白为什么我必须这样做做我做的。 注意我的 LocalContainerEntityManagerFacotryBean 如何引用 HibernateJpaVendorAdapter 。 applicati