是否可以让Tomcat与JDBC领域表单身份验证一起返回一个不同的用户表列,作为“用户名”,而不是在登录时提供的用户名?
用例:在我的应用程序中,我使用servletRequest.getUserPrincipal()并将其转换为org.apache.catalina.realm.GenericPrincipal。现在,我希望使用ID而不是当前用户的loginname来执行诸如在数据库表中填写"created_by“列之类的任务。该列是一个数字列,而不是一个字符串,由于各种原因(数据卷,更改名称的可能性,.)
我在猫文档或JDBCRealm-docs中没有看到这方面的属性。
我需要一个新的属性userIdCol,并且它也可以在GenericPrincipal中使用。更好的情况是,如果使用了新属性,那么ID在HttpServletRequest中是直接可用的。
我非常肯定,这是不可能的,但无论如何,想问,因为请求本身(有和id-号,而不是id-string)似乎是非常常见的。
任何建议都是非常感谢的。谢谢。
发布于 2017-08-27 20:43:21
使用Tomcat的现有代码无法做到这一点。
下面是我处理它的方法:当用户登录时,我加载一个User
对象并将其放入HttpSession
中。User
对象包含用户的数字标识符。每当需要执行某些数据库操作时,我都会将当前的User
从HttpSession
传递到执行该操作的方法中。现在,处理数据库调用的代码可以访问用户的数字标识符。
https://stackoverflow.com/questions/45857619
复制相似问题