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

Spring Security OAuth2-存储的身份验证对象

蓝慈
2023-03-14

我目前正在使用Spring Security Oauth2 2.0.7版的一个相当普通的设置。与JdbcTokenStore一起发布,最近遇到了一个有趣的问题。

我知道,当访问令牌被创建和存储时,身份验证对象被序列化,并持久化到数据库中。我知道这是必要的,并且在以后在请求中使用访问令牌时使用。问题是,我的身份验证对象(Spring Security的用户详细信息接口的自定义iml)与我的应用程序域中的其他对象相关联。(示例对象图可能看起来像身份验证-

我不得不对上述对象的实现进行一些更改,并注意到在更改之前序列化并存储到数据库中的身份验证对象不再进行反序列化,这是有意义的,因为我的对象模型已经更改。

管理这种情况的推荐方法是什么?有没有办法让身份验证对象序列化为JSON而不是二进制?我倾向于从身份验证对象中删除自定义信息,但我想知道是否有更好的方法?

共有1个答案

景国兴
2023-03-14

为了结束循环,我最终使用的方法是扩展JdbcTokenStore,并覆盖serializeAuthenticationdeserializeAuthentication方法,以使用Jackson执行序列化/反序列化。然后在我的对象模型中,我@JsonIgnore'd验证用户时并不真正需要的实体。

 类似资料:
  • 我尝试将安装程序部署到本地存储库: --设置。xml-- --波姆。xml--- 当我执行“mvn部署”时,我收到错误: 艺术家日志: 如果我将服务器/存储库id更改为“myserver.com”-部署工作!但这不适合我,因为在myserver上,这不适用于svn。通用域名格式 我试图将标签“配置文件”和“镜像”添加到server.xml和“分发管理”添加到pom.xml-得到相同的错误 服务器/

  • 问题内容: 使用Couchbase 5.0及其Java客户端2.0.3时,出现以下错误。 只需按照以下说明打开存储桶即可: https://developer.couchbase.com/documentation/server/current/sdk/java/managing- connections.html 如前所述,使用基本的本地配置,只需两行代码即可: 那应该打开localhost集群

  • 我已经实现了keycloak用户存储SPI流。它针对外部源进行身份验证。Keycloak是用外部存储属性更新的,如果它在getUserByUsername方法中更新,它就可以工作。 我正在isValid方法中验证userValidation,并更新UserModel和LocalHashMap中的userAttributes。 从日志中,我看到UserStoreProviderFactory创建了两

  • 身份验证 PDF版下载 企业应用中的URL链接可以通过OAuth2.0验证接口来获取员工的身份信息。 通过此接口获取员工身份会有一定的时间开销。对于频繁获取员工身份的场景,建议采用如下方案: 企业应用中的URL链接直接填写企业自己的页面地址; 员工跳转到企业页面时,企业校验是否有代表员工身份的cookie,此cookie由企业生成; 如果没有获取到cookie,重定向到OAuth验证链接,获取员工

  • 我们正在配置spring云配置服务器,下面是我的应用程序属性的外观: 我可以登录到github url,即https://github.com/myorganization/config-store.git使用用户名MyUser和密码MyPassword作为上述属性,但当我试图启动我的配置服务器使用:./mvnw sping-boot: run我得到以下错误: 我已经尝试了很多东西,但现在没有任何

  • 问题内容: 我目前有一个Palm WebOS应用程序,该应用程序使用Ajax.Request通过基本身份验证连接到Web服务。要发送用户名和密码,我只需将其包含在url(即http:// username:password @ ip-address:port / )中即可,效果非常好,期望密码包含字母数字字符以外的任何字符(例如, ,最近有一个用户给我发送电子邮件,该用户的密码中包含“ @”和“&