问题标签 [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 - 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.
spring - Grails 3 JWT 令牌存储问题
我正在尝试使用 spring-security-rest 插件通过 grails 3 实现一个宁静的服务。
我想使用 JWT 令牌存储配置,但是当我尝试访问登录 URL 时,应用程序失败并出现以下错误:
该错误似乎与它试图使用 GormTokenStorageService 的事实有关,即使我将配置设置为使用 JWT 令牌存储
这是我的application.groovy文件
grails - [X] 中的 [getAssociatedToEntities] 操作接受 [java.util.List] 类型的参数
语境
我在 Grails 2.4.4 中有一个使用Spring Security Rest Plugin 1.5.4 for Grails和Spring Security Core 2.0.0的项目,我收到了这个警告:
这是代码...
BuildConfig
UserController (警告来自的代码!)
问题:
我怎样才能摆脱那个警告?提前致谢!
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/action
,springSecurityService.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
即所有用户检索功能SpringSecurityService
。getCurrentUser()
, 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但为了记录,我也在这里问。
我在下面提供的答案包含一个解决方法修复。答案中解释了修复工作的机制。我的问题是:
- 这种方法是否会在安全系统中引入任何漏洞或漏洞?
- 这个授权模式是安全的还是需要修改?
- 我正在通过插件进行身份验证,但正在授权自己。有人可以绕过安全过滤器并直接命中授权拦截器吗?因为如果有人能做到这一点,他只需给我一个与令牌格式相同的管理员用户名,他就可以访问所有内容。
grails - Grails spring security rest 注入 tokenGenerator
我有类似这篇文章提到的要求。:REST spring security - 手动验证新用户并获取访问令牌
根据接受的答案,代码将如下所示:
我试过了,但它对我不起作用。似乎没有正确注入 TokenGenerator 实现类。我知道 grails-spring-security-rest TokenGenerator 中的默认实现将是 JWT,但想知道我应该在哪里注册或配置它。
rest - 使用 Spring social 进行 Spring 安全性 REST 身份验证
我正在创建一个应用程序,用户可以通过用户名和密码登录,也可以通过 spring social 登录 Facebook。我从 本教程中举了一个例子,但它是为 Spring MVC 而不是 REST 配置的。
作者创建特殊的 UserDetailsService 并将其分配给身份验证管理器构建器。
在这一点上,我认为一切都很好。UserDetailsService 具有通过用户 ID 查找用户的方法。
在安全配置类的 http 配置中,如果我想拥有 REST 应用程序,我应该将“表单登录”更改为 http“基本身份验证”吗?如果我改变这个,我应该在每个请求中添加正确的 http 授权标头吗?或者我可以使用标准登录的令牌身份验证(通过用户名和密码,而不是社交)?基于令牌的身份验证将与 Spring 社交登录配合(还有令牌)?
安全配置
spring - Spring Boot 安全考虑不区分大小写的用户名检查登录
我正在开发一个 Spring Boot Web 应用程序。问题出在登录场景中。假设我有一个用户名“Ali”注册的用户。该用户可以使用用户名“Ali”或“ali”登录。下面的代码代表我的 spring 安全配置类。似乎在比较时,Spring boot 不检查大写小写因素,但我希望它被检查。
我还在课堂上实现equals
了方法User
:
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'
到数组的末尾来添加我试图访问此部分的路径
网址映射:
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 命令时,显示以下错误:
spring-boot - 禁用特定端点的基本身份验证,并保持所有其他安全
现在我配置网络安全适配器,如 -
如果未通过身份验证,哪个工作正常并阻止所有请求。但现在我想阻止除/login
. 我的意思是,我希望只是不安全,/login
并且/login/*
应用程序的其余部分是安全的。
任何人都知道我怎样才能做到这一点?