问题标签 [pre-authentication]
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-security - Spring Security 预认证账户锁定检查
新手问题...我已经成功实现了自定义处理程序和服务(自定义用户详细信息服务、身份验证成功、身份验证失败)并且一切正常。我现在还实现了一个功能,如果他们未能通过身份验证 3 个并发时间,将锁定一个帐户(一段时间)。
我现在继续处理当用户在拥有帐户锁定时尝试进行身份验证的场景。如果锁定处于活动状态 > 不应尝试身份验证并将用户重定向到锁定的帐户页面/错误。如果锁已过期 > 应移除锁并正常进行身份验证
在帐户锁定处于活动状态的情况下 - 我尝试在我的自定义身份验证成功处理程序中实现这一点,但尽管成功地将用户转发到帐户锁定错误页面 - 为时已晚,因为应用程序已经对用户进行了身份验证并且用户是成功地能够直接访问安全页面(这显然是错误的,因为他们的帐户应该被锁定)。
我开始玩,但我想我会先在这里检查一个更标准/优雅的解决方案/方法。我应该在自定义用户详细信息服务中执行此检查和操作,还是在用户点击自定义用户详细信息服务之前我可以实施预身份验证处理程序?任何关于我在哪里/如何处理这个问题的帮助或建议将不胜感激
jakarta-ee - 如何在@Preauthorize 中使用路径变量
我有一种情况,我需要将路径变量作为参数传递给预授权
它不起作用。任何人都可以建议我如何在预授权中使用路径变量。
wcf - Access the underlying Request(WebRequest or HTTPRequest) object in WCF for Digest PreAuthentication
We are exposing the Entity objects through WCF Services. To retrieve the entities we make several requests through WCF, close to a 100 or more. We recently switched to Digest Authentication and noticing that every single server request is issuing a 401. This creating twice as much load on the server and since we have very large "posts", this will create additional traffic lag. The goal is to have only a single Challenge(401) from the server and the rest of the requests should include the Auth header so the server doesn't issue a 401. Since Digest is a challenge based protocol with an expiring nonce, even though we may not fully eliminate the 401's but at least avoid them for every request. Since we control both server and client we want send the Digest Auth header included on every request. There is a Pre-Authenticate property in .NET 2.0 webservices Style Web Reference Proxy/Client(that inherits SOAPHttpClientProtocol) that allows the Auth header to be included with the request, but with a WCF Services Web Reference client(that uses ChannelFactory) there isn't. There is a clear difference in the Request/Response traffic when this property is set and when it isn't. Since this is Digest Authentication(NOT Basic) I cannot add the Auth header manually during BeginRequest with a ClientMessageInspector.
Fiddler trace with .NET 2.0 Style Web Reference Client, with Preauthenticate set. Notice that there is only one 401 and rest of the requests have Auth header.
Trace with WCF Style Service reference Client. Every single request generated a 401 from the server:
I see two options:
- Switch our Client code to use .NET 2.0 style Web reference Client, this will be a big move since we are doing some custom Fault handling.
- Find a way to get to the WebRequest or the HTTPRequest object of the WCF ChannelFactory and set the PreAuthenticate Property. How to get to the actual WebRequest object??
Are there any other options??
redirect - Websphere 8 + Spring Security preAuthentication +在未经身份验证的受保护资源请求后不重定向到登录页面
在未经身份验证的用户向受保护的资源发出请求后,我在重定向到 login.jsp 页面时遇到问题;我的 JSF 2 Web 应用程序部署在 WAS 8.5 上,我在其中设置了一个带有自定义数据库领域的自定义安全域,并位于带有 spring-security 框架的经典 preAuthenticated 场景下。我声明在 JBoss 6.1.0 上一切正常!!!好吧,我使用经典的基于表单的登录(j2ee 标准)设置了我的应用程序:
通过经典的安全约束配置保护页面,如 Spring Security 指南所示:
我的 Spring 安全性如下所示:
如您所见,我已经重载了org.springframework.security.web.authentication.preauth.websphere.WebSpherePreAuthenticatedProcessingFilter因为我注意到 doAuthentication() 方法从 WAS 返回一个主体值等于“未验证”的匿名请求,而 spring AbstractPreAuthenticatedProcessingFilter 类与主体匹配像这样使用null:
结果是如果用户是匿名的,它永远不会返回语句。
但这并不能解决我的问题...如果对受保护资源完成未经身份验证的用户请求,我希望我的容器 (WAS) 重定向到 login.jsp 页面。有什么想念我的配置?这个场景在 JBoss 6 上成功运行,有人帮助我吗?
提前致谢 !!
spring-security - 如何根据 RequestHeaderAuthenticationFilter 将身份验证管理器委托给特定的 CustomUserDetailsService?
我在基于 Spring 的应用程序中对用户进行预身份验证时遇到问题。
这是我的场景。我有两个 CustomUserDetailsServices,一个用于员工,一个用于客户。在我的服务器前面,它实现了一个代理,它在客户端请求的 Http Header 中添加了两个标头信息。让我们称他们为Header_A
和Header_B
。
我希望 Spring Security 执行以下步骤:
- 取
Header_A
并在 , 中使用它EmployeeUserDetailsService
来调用loadUserByUsername(String name)
方法。如果找到用户,则对其进行身份验证并授予他对应用程序的访问权限。 - 如果未找到该用户(未将其标识为员工),我希望该安全性能够获取
Header_B
并在CustomerUserDetailsService
.
我尝试了以下方法,它可以工作,但是有一个变通方法(我不想做那个变通方法):
这件事做了以下事情:
- 获取 Header_A 并在 EmployeeUserDetailsService 中使用它
- 获取 Header_B 并在 EmployeeUserDetailsService 中使用它
- 获取 Header_A 并在 CustomerUserDetailsServie 中使用它
- 获取 Header_B 并在 CustomerUserDetailsServie 中使用它
我所做的解决方法是验证标题的长度(即修复),然后返回;如果一个标头位于错误的 UserDetailsService 中
java - Grails Spring Security 密码尝试失败
当 LoginController 的操作 authfail 中的身份验证失败时,有没有办法在 spring security core grails 插件中检索用户输入的密码?
我需要能够知道身份验证失败时输入的密码。
java - For what reason was pre-authentication removed from Apache httpClient?
As you can see the Apache httpclient 3.x had an amazing method that you could use to reduce the amount of unnecessary connections and data that is send around between client and server:
client.getParams().setAuthenticationPreemptive(true);
http://hc.apache.org/httpclient-3.x/authentication.html#Preemptive_Authentication
What I want to know is, why did they remove it?
I know there are proper workarounds like using an interceptor or modifying the header, but I am wondering about the reasons behind that change: stability, performance, security, conformity? ...
spring - Spring 安全 Java 配置
我正在尝试使用 JavaConfig 而不是 Spring Security 的 XML 配置。我想@PreAuthorization
用于声明访问权限。
我的 Spring 安全配置如下所示:
但是,这不起作用。一旦我部署了我的 Web 应用程序,我就会收到一个错误Error creating bean with name 'methodSecurityInterceptor' defined in class path resource
。
经过一番研究,我发现我必须将aopalliance
库添加到我的项目中。不幸的是,这并没有解决我的问题。
这是完整的堆栈跟踪:
java - Spring Web Service 预身份验证过滤器映射角色
我正在尝试使用 tomcat 身份验证为我的 Spring Web 服务配置预身份验证。我尝试了 pre-auth spring 示例并像下面一样配置了我的 applicationContext-security.xml 以使用默认的 spring 配置。
这里 TESTROLE 是在 tomcat-users.xml 中定义的角色,但现在我收到以下错误。
我有什么想法为什么会发生这种情况?
java - 在 Web 服务和业务层(Spring、tomcat)之间传递身份验证信息
我在两台tomcat
服务器上分别部署了 Spring Web 服务和业务层。(如问题Spring WS 分别部署 Web 服务和业务层中所述)。
业务层只是一个 servlet 容器,web 服务与它通信 spring httpinvoker
。
我将基于 tomcat 容器的身份验证与 springsPreAuthenticatedAuthenticationProvider
和J2eePreAuthenticatedProcessingFilter
. 在这里,我不向客户端应用程序提供任何身份验证令牌。(我的意思是我没有手动进行任何会话处理。它仅由 tomcat 管理)
现在我想确保对我的业务层的请求来自经过身份验证的客户端。我发现的一件事是将Authentication
我从 Web 服务的安全上下文中获得的对象SecurityContextHolder.getContext().getAuthentication()
作为请求参数传递给业务层。但是我没有办法验证该Authentication
对象。那么关于在我的业务层实现安全性的方法有什么想法吗?