首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在运行时注册WebSecurityConfigs?

如何在运行时注册WebSecurityConfigs?
EN

Stack Overflow用户
提问于 2019-04-16 01:09:01
回答 1查看 51关注 0票数 2

我正在为我的学习构建一个web应用程序。该应用程序将由单个管理员管理,该管理员可以注册组织,以便其员工可以使用它。

我已经有了一个可以工作的WebSecurityConfiguration,它将每个未经验证的用户重定向到一个位于"/login“的表单登录页面。现在,我需要在"{ organization }/login“这样的路径下为每个组织提供自己的登录链接,因为我的教授要求这样做。为此,我还没有找到解决方案。

我不能只添加一个页面,让用户选择要重定向到相应登录页面的组织,因为我不想向除管理员之外的任何用户显示有关哪些组织实际使用该应用程序的信息。

我试着在StackOverflow上查找,找到了this question。它没有回答我的问题,因为它似乎是由身份验证引起的。

我想过通过添加多个WebSecurityConfigurations (通过使用@Order)来解决这个问题,这最终解决不了任何问题,因为我不知道将添加多少组织(以及哪些组织)。

我尝试使用自定义控制器来处理"/login“,并让Spring将HttpServletRequest注入适当的方法(用@GetMapping("/login")注释),希望找到被重定向的原始HTTP请求保存在其中的某个地方。看起来不是我错过了它就是它不在里面。

因此,我的下一个希望是在我的应用程序中添加一个工厂,它只是在运行时为每个新注册的组织添加另一个WebSecurityConfig。然而,我没有找到任何方法来实现这一点。那么有没有办法在我错过的运行时注册新的WebSecurityConfigurations呢?或者,有没有一个地方可以在重定向到登录页面后获取有关HTTP请求的信息?对于我的问题,我愿意接受任何解决方案或提示。

EN

回答 1

Stack Overflow用户

发布于 2019-04-17 03:57:35

似乎我没有正确调试会话属性。Spring Security将请求保存在会话中(可以通过键“SPRING_SECURITY_SAVED_REQUEST”访问)。似乎我只直接访问了"/login“,因此没有被重定向。如果用户不需要重定向,则显然不会设置该属性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55694183

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档