问题标签 [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.
spring - 多重安全性:自定义身份验证提供程序
在 applicationContext.xml 中定义 mmultiple security:custom-authentication-provider 是否有效?
例如
<bean id="dummyAuthenticationProvider" class="com.user.sample.gwtspring.server.security.JDBCDummyAuthenticationProvider"> <security:custom-authentication-provider /> </bean>
<bean id="dummyAuthenticationProvider2" class="com.user.sample.gwtspring.server.security.OpenIdDummyAuthenticationProvider2"> <security:custom-authentication-provider /> </bean>
两者都会在 authenticationManager 中注册吗?我正在考虑使用 dummyAuthenticationProvider2 作为 openId。我还需要在 applicationContext.xml 中添加什么其他元配置?
java - spring认证提供者VS认证处理过滤器
spring authentication provider和authentication processing filter都需要注册authenticationManager吗?
身份验证提供者我可以使用自定义身份验证提供者标签
但是 spring 身份验证提供程序和身份验证处理过滤器有什么不同?
java - 如何在 Spring Security 中使用自定义角色/权限?
在将遗留应用程序迁移到 Spring Security 时,我遇到了以下异常:
在旧应用程序中,有“超级管理员”、“编辑器”、“帮助台”等角色。但在所有 Spring Security 示例中,我只看到“ROLE_”(“ROLE_ADMIN”等)等角色。当我将“superadmin”重命名为“ROLE_ADMIN”并仅在配置中使用此角色时,一切正常。
不起作用:
作品:
是否可以使用自定义角色名称?
session - 登录页面使用 SSL,未加密页面看不到加密会话 cookie(Grails、Acegi)
设置:Grails 1.1,Acegi/Spring Security 插件
我希望用户通过 SSL 登录,所以我的 channelConfig.secure[] 列表中有“/login/**”,但几乎所有其他内容都在 channelConfig.insecure[] 中。/login 的每个请求都被重定向到 https://,而其他所有请求都被重定向到 http://。
我的问题是登录过程将 cookie 设置为“仅通过加密连接发送”,因此当登录页面重定向到 /home 时,主页看不到 cookie 并将我重定向回登录页面。当我再次尝试登录时,登录页面会看到 cookie 并重定向我……等等。
我浏览了这个关于 SecurityConfig的页面,看看是否有一个选项允许通过未加密的 HTTP 读取通过 SSL 创建的 cookie,但我什么也没找到。我可以设置一些选项来使我的登录 cookie 可用于我的未加密控制器吗?
java - Spring Security 的编程使用
我将Wicket与 Wicket Auth Project 一起用于我的表示层,因此我将它与 Spring Security 集成。这是 Wicket 为我调用的身份验证方法:
我的 Spring Security XML 配置的内容(内部)是:
第2.3.6 节。参考文档的会话固定攻击保护说:
会话固定攻击是一种潜在风险,恶意攻击者可能通过访问站点来创建会话,然后说服另一个用户使用相同的会话登录(通过向他们发送包含会话标识符作为参数的链接,例如例子)。Spring Security 通过在用户登录时创建一个新会话来自动防止这种情况发生。如果您不需要此保护,或者它与其他一些要求冲突,您可以使用 session-fixation-protection 属性控制该行为有三个选项:
- migrateSession - 创建一个新会话并将现有会话属性复制到新会话。这是默认设置。
- none - 不做任何事情。原始会话将被保留。
- newSession - 创建一个新的“干净”会话,而不复制现有会话数据。
身份验证有效,但由于我对 Spring Security 还很陌生,所以我也有一些问题需要回答:
- 通常对于登录,我会将身份验证信息发布到
j_spring_security_check
并让 Spring Security 执行实际的身份验证代码。我想要保护免受会话固定攻击,当我像我一样执行程序登录时会得到它吗?如果没有,我该怎么做才能得到它? - 如何执行程序化注销?
- 由于我将使用编程登录和注销,我如何禁用 Spring 拦截这些 URL?
更新:
对于会话固定攻击保护,似乎我需要使用签名调用 SessionUtils 类中的方法startNewSessionIfRequired(HttpServletRequest request, boolean migrateAttributes, SessionRegistry sessionRegistry)
。
如何获取需要传入的 SessionRegistry 实例?我找不到任何方法为其创建别名 ID,或者如何获取它的 ID 或名称。
spring - Blazeds 和 Spring security,可以在这个组合中使用 remember-me 吗?
我正在使用最新版本的 Spring Blzeds 集成,它具有一些功能,可以更轻松地保护对目标对象的调用。但是,我使用的基本设置使用 ChannelSet 登录方法形成 flex 端会在每次页面刷新时丢失身份验证信息(会话)。这是我正在使用的配置:
有没有另一种方法来配置/实现它,所以我可以获得持久会话(记住我)。是否可以通过标准 HTTP POST(如表单)从 flex 进行登录,并且仍然可以获得相同级别的粒度来保护远程对象调用?
java - 开发模式的Spring安全预认证
在开发应用程序时,能够以具有不同角色的不同用户身份快速登录以查看应用程序如何呈现自己是非常有用的。
输入用户名和输入密码不好玩,而且浪费时间。我想做的是:
- 添加一个包含可用用户名列表的页面/面板;
- 单击用户名将为 Spring 安全性生成一个事件,该事件允许它识别用户已通过身份验证,而无需输入密码;
- 单击链接后,我被认证为指定用户。
注意:密码被散列并使用表单以纯文本形式提交,因此在链接中对密码进行编码不是一种选择。
显然,此功能只会在开发时出现。
我怎样才能做到这一点?
java - spring security 可以有多个安全上下文吗?
我有一个安全上下文定义,它将 PreAuthenticatedProcessingFilterEntryPoint 用于我的应用程序的 flex 部分。我怎样才能有另一个定义,将标准表单登录与 html 表单用于我的应用程序的另一部分?这是我目前拥有的:
我想做的是为管理站点中的 url 使用另一个身份验证提供程序,我目前拥有的是用于 flex 应用程序的身份验证提供程序。所以我希望管理员 url 的安全性使用另一个 userDetailsService bean。
spring - 如何将证书放入 X509 过滤器(Spring Security)?
我需要提取更多信息,而不仅仅是证书的 CN。目前,我只得到标准的 UserDetails loadUserByUsername(String arg) 其中 arg 是证书的 CN。我需要获取 X509Certificate 对象。可能吗?
在 Spring Security xml 文件中: