gpt4 book ai didi

tomcat - 让 Tomcat JDBCRealm 为返回的用户名使用不同的列

转载 作者:行者123 更新时间:2023-11-28 23:19:06 26 4
gpt4 key购买 nike

是否可以让具有 JDBC 领域表单例份验证的 Tomcat 返回一个不同的用户表列作为“用户名”而不是登录时提供的用户名?

用例:在我的应用程序中,我使用 servletRequest.getUserPrincipal() 并将其转换为 org.apache.catalina.realm.GenericPrincipal。现在我想使用当前用户的 ID 而不是 loginname 来完成诸如填写数据库表中的“created_by”列之类的任务。由于各种原因(数据量、更改登录名的可能性等),此列是数字列而不是字符串

我在 Tomcat docs 中没有看到这个属性或 JDBCRealm-docs .

我需要一个新属性 userIdCol 并且在 GenericPrincipal 中也可用。如果使用新属性,则如果 ID 直接在 HttpServletRequest 中可用,那就更好了。

我很确定这不可能开箱即用,但无论如何还是想问一下,因为请求本身(有 ID 号而不是 ID 字符串)对我来说确实很常见。

非常感谢任何建议。谢谢。

最佳答案

Tomcat 的现有代码无法做到这一点。

这是我的处理方式:当用户登录时,我加载一个User 对象并将其放入HttpSessionUser 对象包含用户的数字标识符。每当我需要执行某些数据库操作时,我将当前 UserHttpSession 传递到执行该操作的方法中。现在,处理数据库调用的代码可以访问用户的数字标识符。

关于tomcat - 让 Tomcat JDBCRealm 为返回的用户名使用不同的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45857619/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com