Spring Security 自定义字段

发布于 2024-09-30 16:47:55 字数 131 浏览 3 评论 0 原文

1)如何在登录表单中添加自定义字段并在登录后使用该值导航到不同的页面。我需要一个自定义身份验证提供程序来进行身份验证。我们可以使用 spring mvc 来绑定这一切吗?

2)我们如何在auth提供者中获取HttpSession?

1) How can i add a custom field in my login form and use that value to navigate to a different page after login. I need a custom authentication provider for authenticating. Can we use spring mvc to tie all this?

2) How can we get hold of HttpSession in auth provider?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

单身狗的梦 2024-10-07 16:47:55

1)我想,您可以通过实现自己的 AuthenticationSuccessHandler 并将其传递给 来选择默认行为;

2) 这实际上不符合 Spring Security 中关注点分离范例的脉络,其中身份验证提供程序填充 Authentication 对象,而另一个过滤器则在/从HTTP 会话。尽管如此,您通常可以通过将过滤器 org.springframework.web.context.request.RequestContextListener 添加到您的请求处理链内的任何位置来访问当前的 HTTP 请求,从而访问会话。 web.xml。然后使用 ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest().getSession() 从身份验证提供程序访问会话。

1) I guess, you can choose the default behavior by implementing your own AuthenticationSuccessHandler and passing it to <form-login authentication-success-handler-ref="..."/>

2) This is actually not in the vein of the separation of concerns paradigm in Spring Security where the authentication provider populates the Authentication object and another filter persists/populate the authentication in/from the HTTP session. Nevertheless, you can in general have access to the current HTTP request and, therefore a session, from anywhere inside the request processing chain by adding the filter org.springframework.web.context.request.RequestContextListener to your web.xml. Use then ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest().getSession() to reach the session from your authentication provider.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文