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

Spring Security将容器安全性和JWT令牌结合起来

商和颂
2023-03-14

是否可以有一个登录rest服务,该服务使用Spring Security验证容器安全性,如果成功,则返回JWT令牌。然后调用其他服务将使用JWT过滤器。

基本思想是这样的。

  1. 我有一个React应用程序,它有一个登录页面。它发送一个带有用户名和密码的登录请求(通过rest服务)。安全性是基于容器的(例如Tomcat用户)。Spring security应该通过容器进行身份验证,如果用户名和密码正确,则登录服务返回JWT令牌

我在谷歌上找不到这种情况的例子。

共有1个答案

戚宏扬
2023-03-14

您试图找到的是Spring Security所称的预身份验证。

您可以为不同的场景启用它,我将展示一个Java EE容器示例。

@Bean
SecurityFilterChain appSecurity(HttpSecurity http) throws Exception {
    http
        ...
        .jee(Customizer.withDefaults())
        ...

    return http.build();
}

jee()要做的是在您的安全过滤器链中注册一个J2eePreAuthenticatedProcessingFilter,过滤器本身将从HttpServletRequest中提取主体,并调用预身份验证提供者对其进行身份验证。

然后,在控制器中,可以注入主体,并使用主体的细节构建JWT。

 类似资料:
  • 正在尝试使用Spring boot webflux设置基于JWT令牌的身份验证。 Spring boot版本:-2.3.0。生成快照 技术堆栈:-Angular 9,Spring boot 2.3.0。BUILD-SNAPSHOT,Spring Security,Spring Security JWT GUI基于angular 9并使用基于表单的身份验证。 需要JWT来调用来自角,也需要调用直接到

  • 我使用的是Spring Boot 1.5.9,有一个应用程序有一个使用OAuth2客户端凭据的API,还有一个在同一个Spring Boot应用程序中使用Thymeleaf的CMS的formlogin。 为此,我有以下bean来配置表单登录: 因此,对于表单登录部分,我声明了与API、Oauth和/或管理相关的所有内容(我在中为执行器endpoint设置的自定义上下文路径): 对于Oauth2,我

  • 基于这篇文章和这个问题,刷新令牌应该是长寿命的,访问令牌应该是短寿命的。我将存储我的刷新令牌超过或等于60天,我的访问令牌20分钟或更多/更少,但永远不会超过一个小时。 我在理解这些令牌的使用时的主要难点是两个令牌的存储方法。我明白,我应该将刷新令牌存储为,使其无法通过脚本访问(XSS攻击),并将访问令牌存储在本地,或,以便在API调用中作为密钥使用。这样做是正确的方法吗?我是否应该按照本文中的建

  • 我正在构建一个使用JWT进行身份验证的应用程序。我开始做一些研究,但对于诸如刷新令牌和令牌存储之类的主题缺乏共识,我感到惊讶。 据我所知,JWT和OAuth是两个不同的协议,它们遵循不同的规范。 但我的问题是,对于一个没有通过第三方资源服务器如Google、Facebook等认证的应用程序,有一个刷新令牌真的有用吗?为什么不让JWT令牌像刷新令牌一样持续时间长。 另一方面,我可以看到,如本文所述,

  • 在安全和身份验证策略方面,我完全是个笨蛋。所以我阅读了这篇关于“基于令牌的身份验证”的文章:https://scotch.io/tutorials/the-ins-and-out-of-token-based-authentication > 我不明白为什么中间人(或黑客)不能看到客户端发送的令牌,并使用令牌冒充该客户端/个人来检索资源?在这种意义上,什么使基于JSON Web令牌/OAuth2的

  • 我有一个Quarkus项目,我试图用Jwt令牌保护我的一些endpoint。 到目前为止,它不起作用。一切仍然是可访问的。 我的应用程序.属性: 值得注意的是这些线条 在我的IDE(Intellij)中是灰色的,我的IDE说它们既不被我的项目使用,也不被它的依赖项使用。 说到依赖性,我在我的pom中有这个: 有什么想法吗?