问题标签 [spring-security-rest]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
664 浏览

spring-boot - 带有 spring-boot 和 spring-security 的 JWT

我对 Spring-Security 非常陌生。我正在尝试JWT在我的spring-boot应用程序中实现以执行authentication. 我按照示例代码进行操作,并且能够生成jwt. 但是根据示例文件中的配置,我可以HttpRequest使用配置中的内存数据集来验证输入。username但是,我不明白如何password使用request我的database. 请指导我。我的配置类是

在 overridedconfigure(AuthenticationManagerBuilder auth) throws Exception中,我可以设置将与requestfor/login路径中存在的凭据进行比较的凭据

0 投票
1 回答
956 浏览

spring - 如何在 Spring Boot 安全配置中添加新注册的用户?

我正在使用Spring-Boot、Spring Security基本身份验证。我将通过 RESTful API 调用从我用 AngularJS 编写的客户端应用程序发送登录 URL。

一切都按预期工作。数据库中的所有用户在SecurityConfiguration.java中配置如下。

CustomBasicAuthenticationEntryPoint.java

因此,如果我注册了一个新用户,该用户将插入数据库但未在上述实现中添加。所以认证失败。

每当我注册新用户时,如何刷新上述实现

0 投票
1 回答
351 浏览

rest - Grails 3 - 大摇大摆地记录 Spring Security Rest 的登录 API

我正在使用带有服务 Spring Security REST 和 Swagger 文档的 Grails 3 开发演示 REST Demo。以下是 spring security rest 的依赖项

org.grails.plugins:spring-security-rest:2.0.0.M2

org.grails.plugins:spring-security-rest-gorm:2.0.0.M2

用户必须登录才能执行某些操作子集。在使用以下插件添加 Swagger Doc 并配置以访问所有公开的 API 后,我可以使用“localhost://applicationPath/api”访问所有 API 的 swagger doc

org.grails.plugins:swaggydoc-grails3:0.28.0

不幸的是,我没有在其中列出登录端点。如果我将我的 LoginController 与 apis 端点控制器一起添加,则它会列出所有登录 api,但访问 url 变为

APPLICATIONURL/api/v1/api/login

哪个效果不好。

问题是部分操作无法通过 Swagger UI 内置表单执行(我觉得它非常好,希望让它工作),因为用户没有登录。这个问题有什么解决方案吗?我可以在 Swagger 中手动定义一些端点吗?

这是我使用 Swagger 注册任何 API 的示例代码

如果有人可以提供帮助,那将是很大的帮助。

0 投票
2 回答
1818 浏览

grails - 应用程序启动失败 Grails 3.3.0 添加 Spring Security

我创建了一个运行良好的 Grails REST API 项目。
我在 build.gradle 上添加了以下内容,以将 spring security restdependecy 添加到我的 build.gradle 文件中

compile 'org.grails.plugins:spring-security-core:3.0.3' compile "org.grails.plugins:spring-security-rest:2.0.0.M2"

我使用 grails compile 之后没有给出任何错误
我使用 s2-quickstart 创建了某些文件并将某些代码添加到控制器。但是在运行 grails 应用程序时,我收到以下错误

这是我的 build.gradle 文件

0 投票
1 回答
895 浏览

grails - Grails Spring Security REST -- 获取会话 cookie

我正在构建一个 Grails 应用程序,并且正在使用 spring-security-core-3.2.0 和 spring-security-rest/2.0.0。一切正常,我可以登录我的网络应用程序,还可以使用 JWT 令牌以 RESTful 方式进行身份验证/通信。但是,通过 REST 调用,我仍然得到一个 JSESSIONID 令牌。由于 REST 是无状态的,我不希望有会话。我似乎找不到为此的配置选项。有没有办法禁止为 RESTful 调用创建会话?

这就是我看到我得到一个会话的方式:

检查 headers.txt,我看到:

0 投票
14 回答
94176 浏览

spring-boot - Spring Boot 2.0 禁用默认安全性

我想使用 Spring Security 进行 JWT 身份验证。但它带有默认身份验证。我正在尝试禁用它,但是这样做的旧方法 - 通过禁用它application.properties- 在 2.0 中已弃用。

这是我尝试过的:

我怎样才能简单地禁用基本安全性?

更新
很高兴知道我使用的不是 web mvc 而是 web Flux。

截屏:
基本登录表单

0 投票
1 回答
419 浏览

java - OAuth 2.0 与 Implicit Grant 类型的 Spring Boot 应用程序

我们正在构建一个具有以下技术规格的应用程序。

  • 角 4/5 [前端]
  • SpringBoot 框架 [后端]
  • OAuth 2.0 [授权]
  • MySQL [数据库]

注意:我们自己有资源服务器,授权服务器


流动

我们为多个客户 [我们的客户] 提供单个实例应用程序,这些客户将拥有自己的用户。每个用户都会收到一封电子邮件,通过我们的应用程序为他们各自的客户授权一些东西。电子邮件链接将包含 client_id、record_id 加密和编码。当用户点击链接时,它应该去 AuthServer,通过其 client_id 授权客户端,并将令牌传回用户代理,以进行任何进一步的操作。

我们浏览了这个Github repo并实现了与示例相同的内容。

AuthServerConfigure代码如下:

我们对传递给 configure 方法的值有一些疑问。

  • 这里代表什么.inMemory().withClient("my-trusted-client")?这会一直被硬编码吗?由于我们将根据收到的 client_id 验证每个客户端,我们将在哪里提供它以动态验证?
  • .withClient("my-client-with-registered-redirect")为了什么?即使这对每个客户来说都保持不变?
  • repo 中的作者还说我们可以通过验证设置 $ curl -H "Accept: application/json" my-client-with-secret:secret@localhost:8080/oauth/token -d grant_type=client_credentials,我看到my-client-with-secret:secret这里通过了。如果要针对不同的客户进行更改,我该如何将此值赋予.withClient("my-client-with-secret").secret("secret")

我们很难理解这些概念。我们的要求很简单,我们将使用 client_id 验证每个客户端并为该客户端生成一个令牌Grant_types对于这种类型的要求,我们是否需要其他任何东西?

有人请指出我们正确的方向。

0 投票
2 回答
977 浏览

spring - Spring Security 使用类中变量的值进行身份验证

我在我的应用程序中使用 Spring Security。我正在根据角色(管理员、用户)对 API 进行身份验证。有一个 API 端点,我想使用作为参数传递给它的变量的值来限制访问。

我有

我有一个电话

Spring Security 中的用户是:

使用的 SomeClass 是:

如何根据用户的 someList 中是否存在 someClass.getSomeValue 的值来不允许用户?

0 投票
0 回答
343 浏览

spring-boot - 使用 Spring Security OAuth 2.0 和 JWT 进行移动原生社交注册

我已经使用 Spring Security OAuth 2.0 和 JWT 为我的身份验证服务器实现了密码授予。我通过扩展 AuthorizationServerConfigurerAdapter 创建服务器。我可以给服务器一个用户名/密码并取回一个 JWT 令牌。我使用 ResourceConfiguration 来扩展其他服务上的 ResourceServerConfigurerAdapter 类,以在任何时候进行 Web 服务调用时验证 JWT。下面粘贴的是我的代码。

我想让我的 Native Mobile 应用程序能够使用 Facebook、Gmail、Linked 等登录……我想按照所附文章中的步骤进行操作:

https://ole.michelsen.dk/blog/social-signin-spa-jwt-server.html

  1. 用户在移动端执行 OAuth 舞蹈并向我发送他们正在使用的社交服务的访问令牌。
  2. 我收到访问令牌,并使用它来调用相应的社交服务。
  3. 如果 Token 有效,则用户无法登录,会抛出错误。
  4. 如果令牌有效,我会从社交服务中获取用户详细信息,并使用它在我的数据存储中创建一个“社交用户”,该“社交用户”将与现有或新的系统用户相关联。
  5. 一旦使用社交用户创建系统用户,或者将社交用户绑定到现有系统用户,JWT 令牌就会被发送回移动应用程序。
  6. 这个 JWT 令牌应该类似于 Spring Security OAuth 2.0 密码授予流程创建的 JWT 令牌,并且在授权用户时应该被我的 ResourceServerConfiguration 接受。

我在网上搜索了符合我标准的解决方案,但我找不到任何解决方案。我的要求合理吗?有没有更简单的方法来做到这一点,允许用户通过用户名/密码和社交媒体身份验证登录,同时取回 JWT 令牌。我发现的一个示例使用 OAuth2ClientAuthenticationProcessingFilter 来执行我上面提到的逻辑,但我不知道 OAuth2ClientAuthenticationProcessingFilter 是如何工作的,也找不到任何文档。如果有人不得不使用类似的技术堆栈来实现类似的要求,请告诉我您使用什么技术来实现此解决方案。

在身份验证服务器上:

在每个微服务上:

0 投票
1 回答
659 浏览

spring - 使用 CorsRegistry 或 CorsFilter 全局允许 CORS

我有一个 Springboot 后端,通过它我暴露了一些端点。

我需要从我的前端访问它。当我这样做时,我收到一个错误消息Invalid CORS request。很公平。如本文档
中所述,我在后端全局启用了跨源请求。下面的代码片段

但由于某种原因,这不起作用。我犯了同样的错误。但我设法让这个工作使用CorsFilter如下

那么这两种方法之间究竟有什么区别,为什么它在第一种情况下不起作用。有任何想法吗?