基于Spring Security的Token认证

2024-03-08

我正在尝试使用 spring security 为 HTTP api 启用基于令牌的身份验证。

环顾四周,我看到了有关实现过滤器和处理程序的答案,例如

Spring Security 通过 token 进行身份验证 https://stackoverflow.com/questions/17126201/spring-security-authentication-via-token

Spring Security 3.2 令牌认证 https://stackoverflow.com/questions/18131669/spring-security-3-2-token-authentication

有一个非常有趣的 KeyBasedPersistenceTokenService 类。

在 Spring Security 中是否没有构建身份验证机制所需的过滤器或其余元素?


The TokenSpring Security 中的接口非常抽象 - 您需要提供自己的实现来携带实际的身份验证信息,以及您自己的用于向经过身份验证的用户或客户端颁发令牌的端点,以及您提到的在受保护资源上处理令牌的过滤器(您发布的链接之一建议使用AbstractPreAuthenticatedProcessingFilter这是正确的)。确实没有一种万能的解决方案。

您可能会更好地使用 OAuth2,因为它是一个标准并且在春季OAuth https://github.com/spring-projects/spring-security-oauth。至少你可以通过这种方式获得所有这些开箱即用的功能。

另一个有趣的令牌实现是 Github 的“安全 http”——它们为您提供一个令牌,然后您将其用作 HTTP 基本身份验证中的密码(广泛支持客户端,并且在 Spring Security 中也可以开箱即用)。你只需要插入一个UserDetailsService(并将其连接到一些令牌发行 UI)如果您在 Spring Security 中实现它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于Spring Security的Token认证 的相关文章

随机推荐

  • Scala 中的“上下文绑定”是什么?

    Scala 2 8 的新功能之一是上下文边界 什么是上下文绑定以及它在哪里有用 当然 我首先搜索了 并发现例如this https stackoverflow com questions 2961986 how do you write a
  • 以编程方式更改 iPhone 中的设备方向

    我有基于导航的应用程序 当我单击根视图中的任何行时 下一个视图应该处于横向模式 我无法找到适当的方法来实现这一点 我尝试的是 BOOL shouldAutorotateToInterfaceOrientation UIInterfaceOr
  • 按绝对值排序而不改变数据

    我正在寻找一种简单的方法来按特定列的绝对值对 pandas 数据框进行排序 但实际上不更改数据框中的值 类似的东西sorted df key abs 所以如果我有一个像这样的数据框 a b 0 1 3 1 2 5 2 3 1 3 4 2 4
  • 在 ES6 模块中通过字符串访问导出函数

    考虑以下 exports handleEvent event export function handleEvent event do something with event 这在使用 babel 转译节点模块时有效 因为它将所有内容粘贴
  • 在 XSLT 1.0 中将 EDT 转换为 GMT

    我的输入值为 2017 年 9 月 12 日星期二 15 03 22 EDT 或 2017 09 12T15 03 22 0000000 我需要类似 2017 09 12T19 03 22Z 是否可以在 XSLT 1 0 中将 EDT 日期
  • 在 Android 中隐藏键盘的最佳方法

    我想知道在 EditText 输入文本后隐藏键盘的最佳方法 1 setonfocuschangelistener 是否仅在按下完成按钮或焦点从一个 EditText 更改为另一个时触发此侦听器 当我使用这个方法时 我无法隐藏键盘 2 set
  • SSMS 2012 智能感知行为

    SSMS 2012 中智能感知的行为似乎已更改 因此它的行为与 Visual Studio 或 SSMS 2008 不同 以前我总是按空格键 这会插入智能感知中当前突出显示的单词 但在 SSMS 2012 中我必须按 TAB 或按向下键然后
  • 如何使用 python 传递字符串+ web url并接收响应[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在使用 Python 和谷歌翻译
  • iOS 的 BLE 外设名称不正确

    我正在编写一个 iOS 应用程序来与 BLE 设备通信 设备可以在连接之间更改名称 不能在 BLE 连接期间 但 iOS 拒绝更改设备名称 例如 当设备名称为 SadName 时 我可以连接到该设备 我断开连接 关闭应用程序等 然后将设备的
  • 检查空值并在不存在时分配另一个值的最短方法

    我拉着varchar值来自数据库并想要设置string如果它们是 我将它们分配为 null 我目前正在这样做 if string IsNullOrEmpty planRec approved by true this approved by
  • 如何在 CSS 中组合变换?

    我有一个 CSS 动画 它使用变换来相对于其当前位置移动 CSS fish animation fishanimation 4s ease in out infinite alternate keyframes fishanimation
  • Android espresso - 如何检查 Listview 底部 TextView 的值?

    在上面的附图中 它是一个带有TextView 交付报告 的ListView Its status can be Sent or Sending or Failed 我想检查 已发送 条件 这意味着断言消息已成功发送 由于这是一个对话 新消息
  • CSS 声明 - 元素类型和 ID 还是只是 ID?

    我应该如何使用 CSS 声明 这边走 div main content width 900px border 1px solid CCC margin 20px 0 20px 0 padding 40px overflow hidden 或
  • 我可以用算术运算的方式编写关系运算符吗?

    所以我有一个相当复杂的函数 template
  • 从 csv 导入时如何获取记录为 NULL 的缺失值

    我有多个大型 csv 文件 每个文件在许多地方都有缺失值 当我将 csv 文件导入 SQLite 时 我希望将缺失值记录为 NULL 因为另一个应用程序希望缺失数据由 NULL 指示 我当前的方法无法产生预期的结果 CSV 文件 test
  • 是否可以从另一个类库中的静态类获取ConnectionString?

    我已在 appsettings json 文件中添加了连接字符串 我需要访问后台操作所需的连接字符串 但为了使用连接字符串 我必须通过同一解决方案中不同项目的静态类进行访问 我无法使用ConfigurationManager Connect
  • 当 TFS 团队查询结果发生更改时发出警报

    是否可以创建一个 TFS 警报 在某个查询的结果发生更改时通知用户 Example 我有一个查询 结果找到 10 个工作项 这些工作项之一已更改 它不再满足此查询 查询结果应为 9 我想要一条通知 告诉我查询结果已更改 也指已更改的工作项
  • 将 Spark 特征向量转换为数组

    我有一个特征列 它使用 Spark 的 VectorAssembler 打包成向量向量 如下所示 data是输入 DataFrame 类型为spark sql DataFrame val featureCols Array feature
  • 保存具有 Parse.files 数组的 Javascript 对象会导致“将循环结构转换为 JSON”错误

    当我尝试上传要解析的解析文件数组时 我遇到了 parse com 不喜欢的问题 我目前有一个数组 arr 其中填充有 base64 字符串图像数据 for var i 0 i
  • 基于Spring Security的Token认证

    我正在尝试使用 spring security 为 HTTP api 启用基于令牌的身份验证 环顾四周 我看到了有关实现过滤器和处理程序的答案 例如 Spring Security 通过 token 进行身份验证 https stackov