问题标签 [spring-security]
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.
grails - Grails - Acegi:自定义身份验证方法
我想更改 Acegi - 插件使用的身份验证过程。它应该是一个完全定制的过程。自定义登录表单 + 自定义身份验证方法。
显然,关于这个主题的文档很少。
在The Definitive Guide to Grails一书中,它是针对旧版本的 grails 进行描述的。那里spring/resources.xml
是用的。
在新版本中有一个spring/resources.groovy
文件,其中使用了 DSL。我不知道如何配置新的AuthenticationManager
.
我怎样才能做到这一点?
login - Spring security:添加“成功登录事件侦听器”
我是 Spring Security 的新手。如何添加将在用户成功登录时调用的事件侦听器?此外,我需要在此侦听器中获取某种唯一的会话 ID,该 ID 应该可以进一步使用。我需要此 ID 与另一台服务器同步。
java - 将验证码与 Spring Security 集成
将 SpringSecurity 与 Capcha 集成的合适方法是什么?
我有以下用例:当用户尝试登录时,如果我们登录 N 次失败,将显示验证码,因此验证将使用三个参数:用户名、密码、验证码。但是 Spring Security 不支持内置的验证码处理。
我刚刚开始考虑实施。并有以下变体:
- 在 Spring Security 过滤器堆栈中添加单独的安全过滤器,
- 完全重写 AuthenticationProcessingFilter 以支持一些验证码
- 使用带有拦截验证码逻辑的一些编程身份验证,然后将用户名和密码传输到 Spring Security
作为验证码的实现,我想到了 JCaptcha,但你的想法是什么?
java - 使用 Spring Security 时,在 bean 中获取当前用户名(即 SecurityContext)信息的正确方法是什么?
我有一个使用 Spring Security 的 Spring MVC Web 应用程序。我想知道当前登录用户的用户名。我正在使用下面给出的代码片段。这是公认的方式吗?
我不喜欢在这个控制器中调用静态方法——这违背了 Spring 的全部目的,恕我直言。有没有办法将应用程序配置为注入当前的 SecurityContext 或当前的身份验证?
spring-security - Acegi Security:如何将另一个 GrantedAuthority 添加到匿名用户的身份验证中
我为用户提供带有访问密钥的特殊 URL。与简单的匿名用户相比,通过这个特殊 url 访问公共页面的用户应该能够看到一些额外的数据。
我想根据请求中提供的参数给匿名用户一些额外的角色,这样我就可以在我的模板中做这样的事情:
目前我正在实施 Spring 的OncePerRequestfilter
:
java - 使用 Spring Security 进行单元测试
我的公司一直在评估 Spring MVC,以确定我们是否应该在下一个项目中使用它。到目前为止,我喜欢我所看到的,现在我正在查看 Spring Security 模块以确定它是否是我们可以/应该使用的东西。
我们的安全要求非常基本;用户只需要能够提供用户名和密码即可访问网站的某些部分(例如获取有关其帐户的信息);并且网站上有一些页面(常见问题解答、支持等)应该允许匿名用户访问。
在我创建的原型中,我在 Session 中为经过身份验证的用户存储了一个“LoginCredentials”对象(仅包含用户名和密码);例如,一些控制器会检查该对象是否处于会话中以获取对登录用户名的引用。我正在寻找用 Spring Security 替换这种本土逻辑,这将有一个很好的好处,即删除任何类型的“我们如何跟踪登录的用户?” 和“我们如何验证用户?” 从我的控制器/业务代码。
似乎 Spring Security 提供了一个(每线程)“上下文”对象,以便能够从应用程序中的任何位置访问用户名/主体信息......
...在某种程度上,这似乎非常不像 Spring,因为这个对象是一个(全局)单例。
我的问题是:如果这是在 Spring Security 中访问有关经过身份验证的用户的信息的标准方法,那么将 Authentication 对象注入 SecurityContext 以便在单元测试需要时可用于我的单元测试的可接受方法是什么?认证用户?
我需要在每个测试用例的初始化方法中连接它吗?
这似乎过于冗长。有没有更简单的方法?
SecurityContextHolder
物体本身看起来很不像春天......
spring-security - 使用 Acegi/Spring Security 创建自定义身份验证
我无法准确地发现我需要实现什么才能使用 Spring Security 在我的 Web 应用程序中使用自定义身份验证方法。我有一个带有 Spring Security 插件的 Grails 应用程序,该插件当前使用标准用户/密码身份验证和浏览器表单。这工作正常。
我需要实现一种机制来实现一种MAC身份验证。如果 HTTP 请求包含多个参数(例如用户标识符、时间戳、签名等),我需要获取这些参数,执行一些散列和签名/时间戳比较,然后对用户进行身份验证。
我不是 100% 确定从哪里开始。我需要扩展/实现哪些 Spring Security 类?我已经阅读了参考文档并且对这些概念有一个很好的理解,但我不确定我是否需要过滤器、提供者或管理器,或者在哪里/如何准确地创建身份验证对象。我一直在尝试扩展AbstractProcessingFilter和/或实现AuthenticationProvider,但我只是理解如何让它们都玩得很好。
java - 如何确定使用 Spring Security 访问 URL 需要哪些角色?
我正在使用 Spring Security 来保护 webapp。URL 的保护方式如下:
我有一个过滤器需要在某些情况下将用户重定向到特殊页面。但是,该页面需要资产目录中的图像和 CSS 文件,不幸的是,这些文件也会被重定向到该特殊页面。我不希望过滤器手动检查每个 URL 模式,因为我的实际 URL 配置要长得多,而且我还希望允许其他页面。
有没有办法从给定页面的过滤器中确定需要哪些角色?如果不需要 ROLE_ANONYMOUS,我可以选择不重定向。
java - 如何从使用选民的 AccessDecisionManager 抛出信息异常
我有以下情况:我的应用程序的授权机制是使用Spring security实现的。中心类实现AccessDecisionManager并使用投票者(每个投票者都实现AccessDecisionVoter)来决定是否授予对某些方法的访问权限。计算选票的算法是自定义的:
在拒绝对某个方法的访问后,应用程序的客户端有兴趣获得一个信息异常,该异常指定了拒绝访问的确切原因。这意味着将一些信息从选民传递给决策经理。不幸的是,标准AccessDecisionVoter传递回决策管理器的唯一信息是可能的返回值之一(ACCESS_GRANTED、ACCESS_ABSTAIN或ACCESS_DENIED)。
最好的方法是什么?
谢谢。
java - spring 不强制执行方法安全注释
对于为什么 spring 没有在我的服务接口上强制执行 @Secured("ROLE_USER") ,我有些迷茫。我的控制器是使用注释建立的。
我的服务接口示例
我的安全上下文: