问题标签 [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 投票
2 回答
4039 浏览

spring - A component required a bean named '' that could not be found

I'm trying to build my first grails application using grails-spring-security-rest plugin following this post's instructions.

However, when I try to run the application it gives me the following output:

Here is my application.yml content:

application.groovy

resources.groovy

grails version:

UPDATE 1

I have added following lines to logback.groovy

Yet, the console output and stacktrace.log file have the same output as posted above

I would really appreciate any suggestions on how to fix this error.

0 投票
1 回答
1541 浏览

spring - Grails 3 JWT 令牌存储问题

我正在尝试使用 spring-security-rest 插件通过 grails 3 实现一个宁静的服务。

我想使用 JWT 令牌存储配置,但是当我尝试访问登录 URL 时,应用程序失败并出现以下错误:

该错误似乎与它试图使用 GormTokenStorageService 的事实有关,即使我将配置设置为使用 JWT 令牌存储

这是我的application.groovy文件

0 投票
2 回答
98 浏览

grails - [X] 中的 [getAssociatedToEntities] 操作接受 [java.util.List] 类型的参数

语境

我在 Grails 2.4.4 中有一个使用Spring Security Rest Plugin 1.5.4 for GrailsSpring Security Core 2.0.0的项目,我收到了这个警告

这是代码...

BuildConfig

UserController (警告来自的代码!)

问题:

我怎样才能摆脱那个警告?

提前致谢!

0 投票
1 回答
642 浏览

spring-security - springSecurityService.principal 在 tomcat 8.5 中部署为 WAR 时返回 Null

前言

我正在为 Grails 微服务联合设计一个 API 网关。此问题似乎与已在此存储库中提交的一堆问题有关,但没有提供解决方案。

版本和配置

圣杯:3.2.2

雄猫:8.5

插件版本:

我正在使用 spring security rest 插件仅用于令牌身份验证。我自己通过返回ROLE_NO_ROLES所有用户来完成授权部分getAuthorities()。我拦截所有请求并根据我自己存储在数据库中的授权模式授权访问。

问题:

使用这些配置和策略,当我在本地系统上运行我的代码时,它可以按需要运行。当我将它作为 tomcat 中的 war 文件部署在服务器上时,它适用于对网关的所有请求,即所有模式的请求/umm/controller/action。Spring 安全上下文就在那里,并且完美地评估了用户。

当我尝试使用表单的请求通过重定向调用其他微服务/umm/microservice/controller/actionspringSecurityService.getCurrentUser()springSecurityService?.principal?.username开始返回 null。尽管我的令牌得到了完美的评估,但我没有得到任何安全上下文。

有关详细信息,请查看此问题。上述问题中还提供了重现该错误的详细信息。整个项目可在此处获得。

更新:2017 年 5 月 19 日

我尝试在本地机器上的 Tomcat 中部署我的战争。这个问题和这个问题提供了以下解决方案。

  • 禁用tomcat缓存
  • 环境 grails.plugin.springsecurity.sch.strategyName = org.springframework.security.core.context.SecurityContextHolder.MODE_INHERITABLETHREADLOCAL

到目前为止似乎没有任何效果。反正SecurityContextHolder要回来了。null即所有用户检索功能SpringSecurityServicegetCurrentUser(), getPrincipal(),getAuthentication()loadCurrentUser()返回 null。

更新:2017 年 5 月 23 日

为了缩小问题范围,我使用

现在对于任何非 umm 请求,我都会得到一个404, page not found. 我认为问题出在生产环境上。该应用程序在开发中运行良好。

也试过grails run-app了,效果很好。为了排除生产环境的问题,我使用创建了战争grails dev war但无济于事。到目前为止,对war.

更新:2017 年 5 月 25 日

我可能应该问这个http://security.stackexchange.com但为了记录,我也在这里问。

我在下面提供的答案包含一个解决方法修复。答案中解释了修复工作的机制。我的问题是:

  1. 这种方法是否会在安全系统中引入任何漏洞或漏洞?
  2. 这个授权模式是安全的还是需要修改?
  3. 我正在通过插件进行身份验证,但正在授权自己。有人可以绕过安全过滤器并直接命中授权拦截器吗?因为如果有人能做到这一点,他只需给我一个与令牌格式相同的管理员用户名,他就可以访问所有内容。
0 投票
1 回答
731 浏览

grails - Grails spring security rest 注入 tokenGenerator

我有类似这篇文章提到的要求。:REST spring security - 手动验证新用户并获取访问令牌

根据接受的答案,代码将如下所示:

我试过了,但它对我不起作用。似乎没有正确注入 TokenGenerator 实现类。我知道 grails-spring-security-rest TokenGenerator 中的默认实现将是 JWT,但想知道我应该在哪里注册或配置它。

0 投票
0 回答
339 浏览

rest - 使用 Spring social 进行 Spring 安全性 REST 身份验证

我正在创建一个应用程序,用户可以通过用户名和密码登录,也可以通过 spring social 登录 Facebook。我从 本教程中举了一个例子,但它是为 Spring MVC 而不是 REST 配置的。

作者创建特殊的 UserDetailsS​​ervice 并将其分配给身份验证管理器构建器。

在这一点上,我认为一切都很好。UserDetailsS​​ervice 具有通过用户 ID 查找用户的方法。

在安全配置类的 http 配置中,如果我想拥有 REST 应用程序,我应该将“表单登录”更改为 http“基本身份验证”吗?如果我改变这个,我应该在每个请求中添加正确的 http 授权标头吗?或者我可以使用标准登录的令牌身份验证(通过用户名和密码,而不是社交)?基于令牌的身份验证将与 Spring 社交登录配合(还有令牌)?

安全配置

0 投票
2 回答
3380 浏览

spring - Spring Boot 安全考虑不区分大小写的用户名检查登录

我正在开发一个 Spring Boot Web 应用程序。问题出在登录场景中。假设我有一个用户名“Ali”注册的用户。该用户可以使用用户名“Ali”或“ali”登录。下面的代码代表我的 spring 安全配置类。似乎在比较时,Spring boot 不检查大写小写因素,但我希望它被检查。

我还在课堂上实现equals了方法User

0 投票
2 回答
926 浏览

grails - Grails 2.5.4 / Spring Security Rest 1.5.4 - 验证令牌

我要做的是登录用户并取回令牌(这部分有效)。然后我想在每次访问 API 路径时验证这个令牌。我显然做错了什么,也许我不完全理解 Spring Security Rest 插件实际上应该做什么,但每当我调用 API 路径并发送令牌时,我得到的只是 Spring Security 登录页面的 html。我正在使用 Boomerang Soap 和 Rest 客户端。这是我要发送的内容。

登录请求(路径:)http://localhost:7070/backend3/api/login

登录响应:

很明显,这部分工作正常。然后我尝试使用从上述响应中收到的令牌来访问我的 API。请记住,在我的 Spring Security 规则下的配置中,我有'/external/**':['ROLE_USER']. 如果我将其更改为['permitAll']然后我可以访问没有问题,但弹簧安全实际上是无用的。

API 请求(路径http://localhost:7070/backend3/external/user/info:)

然后返回标准登录页面的 html。我试过发送各种组合的东西,比如access_token, username, token_type, roles. 我什至尝试过不同格式的access_token; "Authorization":"Bearer eyJhbGciOiJIU"我在文档上找到但没有任何效果。

有人可以向我解释如何解决这个问题,因为文档假设了很多我显然没有的先验知识。我将在下面发布我的 Config 和 UrlMappings 文件(的相关部分)以进一步说明。如果我需要提供更多信息,请告诉我,我真的需要让它工作,因为我已经坚持了 2 周。谢谢

配置:

附言。grails.plugin.springsecurity.filterChain.chainMap我还尝试通过添加'/external/**': 'JOINED_FILTERS,-restTokenValidationFilter,-restExceptionTranslationFilter'到数组的末尾来添加我试图访问此部分的路径

网址映射:

0 投票
2 回答
532 浏览

grails - 将 Spring Security Rest 插件添加到 BuildConfig.groovy 时编译 Grails 2.4.2 应用程序时出错

我有一个使用 Spring Security Core 的Grails 2.4.2应用程序,我正在尝试实现一个带有身份验证的 Restful API。为此,只需在我的 BuildConfig.groovy 文件中添加Spring Security Rest v1.5.4作为插件,如下所示:

当我执行 run-app 命令时,显示以下错误:

p>

0 投票
1 回答
1077 浏览

spring-boot - 禁用特定端点的基本身份验证,并保持所有其他安全

现在我配置网络安全适配器,如 -

如果未通过身份验证,哪个工作正常并阻止所有请求。但现在我想阻止除/login. 我的意思是,我希望只是不安全,/login并且/login/*应用程序的其余部分是安全的。

任何人都知道我怎样才能做到这一点?