问题标签 [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.
spring-boot - 带有 spring-boot 和 spring-security 的 JWT
我对 Spring-Security 非常陌生。我正在尝试JWT
在我的spring-boot
应用程序中实现以执行authentication
. 我按照示例代码进行操作,并且能够生成jwt
. 但是根据示例文件中的配置,我可以HttpRequest
使用配置中的内存数据集来验证输入。username
但是,我不明白如何password
使用request
我的database
. 请指导我。我的配置类是
在 overridedconfigure(AuthenticationManagerBuilder auth) throws Exception
中,我可以设置将与request
for/login
路径中存在的凭据进行比较的凭据
spring - 如何在 Spring Boot 安全配置中添加新注册的用户?
我正在使用Spring-Boot、Spring Security和基本身份验证。我将通过 RESTful API 调用从我用 AngularJS 编写的客户端应用程序发送登录 URL。
一切都按预期工作。数据库中的所有用户在SecurityConfiguration.java中配置如下。
CustomBasicAuthenticationEntryPoint.java
因此,如果我注册了一个新用户,该用户将插入数据库但未在上述实现中添加。所以认证失败。
每当我注册新用户时,如何刷新上述实现
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 的示例代码
如果有人可以提供帮助,那将是很大的帮助。
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 文件
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,我看到:
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
对于这种类型的要求,我们是否需要其他任何东西?
有人请指出我们正确的方向。
spring - Spring Security 使用类中变量的值进行身份验证
我在我的应用程序中使用 Spring Security。我正在根据角色(管理员、用户)对 API 进行身份验证。有一个 API 端点,我想使用作为参数传递给它的变量的值来限制访问。
我有
我有一个电话
Spring Security 中的用户是:
使用的 SomeClass 是:
如何根据用户的 someList 中是否存在 someClass.getSomeValue 的值来不允许用户?
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
- 用户在移动端执行 OAuth 舞蹈并向我发送他们正在使用的社交服务的访问令牌。
- 我收到访问令牌,并使用它来调用相应的社交服务。
- 如果 Token 有效,则用户无法登录,会抛出错误。
- 如果令牌有效,我会从社交服务中获取用户详细信息,并使用它在我的数据存储中创建一个“社交用户”,该“社交用户”将与现有或新的系统用户相关联。
- 一旦使用社交用户创建系统用户,或者将社交用户绑定到现有系统用户,JWT 令牌就会被发送回移动应用程序。
- 这个 JWT 令牌应该类似于 Spring Security OAuth 2.0 密码授予流程创建的 JWT 令牌,并且在授权用户时应该被我的 ResourceServerConfiguration 接受。
我在网上搜索了符合我标准的解决方案,但我找不到任何解决方案。我的要求合理吗?有没有更简单的方法来做到这一点,允许用户通过用户名/密码和社交媒体身份验证登录,同时取回 JWT 令牌。我发现的一个示例使用 OAuth2ClientAuthenticationProcessingFilter 来执行我上面提到的逻辑,但我不知道 OAuth2ClientAuthenticationProcessingFilter 是如何工作的,也找不到任何文档。如果有人不得不使用类似的技术堆栈来实现类似的要求,请告诉我您使用什么技术来实现此解决方案。
在身份验证服务器上:
在每个微服务上:
spring - 使用 CorsRegistry 或 CorsFilter 全局允许 CORS
我有一个 Springboot 后端,通过它我暴露了一些端点。
我需要从我的前端访问它。当我这样做时,我收到一个错误消息Invalid CORS request
。很公平。如本文档
中所述,我在后端全局启用了跨源请求。下面的代码片段
但由于某种原因,这不起作用。我犯了同样的错误。但我设法让这个工作使用CorsFilter
如下
那么这两种方法之间究竟有什么区别,为什么它在第一种情况下不起作用。有任何想法吗?