spring-security - 连接池+模拟查询

标签 spring-security connection-pooling ibm-midrange jt400 jtopen

我正在开发一个由 DB2 over IBM System i (AS/400) 支持的 spring(IoC/MVC/Security)/JTOpen 项目。由于我无法在此讨论的原因,该应用程序的每个用户都在 IBM i (i5/OS) 操作系统上获得了一个帐户,以便他的事务根据他的身份记录在日志(DB2 日志文件)中。为了实现这一目标,一旦有人使用他的凭据登录系统,我们就会建立连接,并相应地根据他在日记中的名字获取他的交易。

问题: 最近,我们一直在研究建立一个连接池,而不是维持每个 session 的连接现状。如果一旦应用程序开始使用通用 i5/OS 帐户(例如:SystemAccount),池就建立这些连接,然后用户登录并请求这些连接之一,是否有任何方法可以以用户的身份执行事务,尽管它是使用通用系统帐户建立?

最佳答案

com.ibm.as400.security.auth包提供了一些类,允许在使用 AS400 时使用 IBM i 配置文件 token 和凭证类来交换用户配置文件。连接类。

如果您使用JDBC您可以调用Security-related APIs在连接上采用配置文件。

  • Get Profile Handle (QSYGETPH) 验证用户 ID 和密码,并为该用户配置文件创建一个名为配置文件句柄的加密缩写。
  • Set Profile Handle (QWTSETP) 将作业切换为在新配置文件下运行。
  • Generate Profile Token (QSYGENPT) 验证调用者是否有权为所请求的配置文件生成配置文件 token ,然后生成配置文件 token 。
  • Set To Profile Token (QSYSETPT) 验证配置文件 token 并将当前线程更改为在配置文件 token 表示的用户和组配置文件下运行。

关于spring-security - 连接池+模拟查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22353646/

相关文章:

spring-security - Spring Security 帐户锁定

java - 带有 c3p0 的 spring JPA 在第一次请求时连接超时

error-handling - AS400- MOVEA无法编译,无法将十进制数据结构移动到十进制数组

spring - 将 csrf token 和 parameterName 添加到注销链接

spring-security - 如何在 Java 类中使用 Spring 的 "user-by-username-query"子句?

Tomcat JDBC 的 Oracle VPD session 问题

ibm-midrange - 在 AS400 中使用 FTP 时指定 CCSID

sql - IBM i Date Diff 与 CYYMMDD - 无法使用 DATE()

java - SAML Spring 示例 : Signature did not validate against the credential's key

java - 在 Oracle ucp 中找不到 oracle.ucp.jdbc.PoolDataSourceFactory