将附加参数传递给 j_security_check

发布于 2024-12-13 16:18:39 字数 120 浏览 10 评论 0原文

在我们的应用程序中,我们需要让用户在使用基于表单的身份验证登录时选择所需的数据源,并且我不确定在使用标准的基于表单的身份验证时是否可能。我听说可以使用 TextInputCallback,但不知道如何(以及在​​哪里)实现它。

In our application we need to let user select the desired datasource when logging in with form-based authentication, and I'm not sure if it's at all possible when using standard form-based authentication. I heard it was possible using TextInputCallback, but have no idea how (and where) to implement it.

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

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

发布评论

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

评论(1

白色秋天 2024-12-20 16:18:39

web.xml 中最多可以有一个 标记。这意味着您不能在一个 Web 应用程序中使用多个领域。因此,您或多或少需要一个特定于容器的解决方案。

在 Tomcat 中有一个 CombinedRealm 可以使用其他领域。

包含一个或多个领域的领域实现。验证
按照配置的顺序尝试对每个领域进行操作。如果有的话
领域对用户进行身份验证,然后身份验证成功。什么时候
组合领域用户名在所有组合中应该是唯一的
领域。

也许它符合您的要求。如果不是,并且用户存在于多个领域(具有相同的用户名),您可以使用前缀。例如,将 "domain\myuser" 设置为用户名。

如果您使用嵌套的 JDBCRealm ,您可以创建一个包含前缀用户名的数据库视图(只需将前缀与用户名连接起来)并使用该视图作为用户表。

另一种方法是删除自定义领域中的前缀并调用容器的 JDBCRealm(或其其他领域),但它需要一些编码。无论如何,它不应该太难,已经存在的领域可能可以与委托设计模式一起使用。

In the web.xml there could be maximum one <login-config> tag. It means that you cannot use more than one realm in one web application. So, you need a more or less container specific solution.

In Tomcat there is a CombinedRealm which can uses other realms.

Realm implementation that contains one or more realms. Authentication
is attempted for each realm in the order they were configured. If any
realm authenticates the user then the authentication succeeds. When
combining realms usernames should be unique across all combined
realms.

Maybe it matches with your requirements. If not and users exist in more than one realm (with the same username) you could use prefixes. For example set "domain\myuser" as the username.

If you use nested JDBCRealms you could create a database view which contains the prefixed usernames (just concat the prefix with the username) and use this view as the user table.

Another approach is removing the prefix in a custom realm and call the container's JDBCRealm (or its other realms) but it needs some coding. Anyway, it shouldn't be too hard, already existed realms probably can be used with the delegate design pattern.

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