IBM System i (AS/400)를 통해 DB2에서 백업 한 스프링 (IoC/MVC/Security)/JTOpen 프로젝트에서 작업 중입니다. 여기서는 논의 할 수없는 이유로 응용 프로그램의 모든 사용자에게 IBM i (i5/OS) 운영 체제에 대한 계정이 주어지기 때문에 그의 트랜잭션은 저널 (DB2 로그 파일)의 ID에 대해 기록됩니다. 이를 성취하기 위해 누군가가 자신의 자격 증명을 사용하여 시스템에 로그인하고 이에 따라 저널에서 자신의 이름과 거래를하게되면 연결을 설정했습니다.연결 풀링 + 쿼리 사칭
문제점 : 최근에 우리는 세션 당 연결 상태 대신 연결 풀을 얻는 방법에 대해 조사해 왔습니다. 애플리케이션이 일반 i5/OS 계정 (예 : SystemAccount)을 사용하여 시작되면 풀이 연결을 설정하면 사용자는 이러한 연결 중 하나에 요청을 로깅합니다. 사용자의 ID로 트랜잭션을 실행할 수있는 방법이 있습니까? 일반 시스템 계정을 사용하여 설정 했습니까?
은' 하도록되어 com.ibm.as400.security.auth.AS400Credential' 클래스 '스왑()를 사용하여 시도'> 그것은 함께 다시 예외를 발생이 자격 에 기초하여 상기 현재 스레드 ID를 교환 "swap()은 IBM i에서 네이티브로 실행될 때만 지원됩니다." 동일한 메시지가 [스왑 기능의 JavaDoc] (http://javadoc.midrange.com/jtopen/index.html?com/ibm/as400/security/auth/AS400Credential.html)의 메모로 사용됩니다. 그렇다면 swap 명령은 AS/400에서 호스팅되는 프로그램에서 가져 오거나 내 전체 응용 프로그램을 AS/400에서 로컬로 호스팅해야합니까? – Eyad
@Eyad 이는 인증 클래스의 제한 사항 일 수 있습니다. API 메서드를 사용하여 원격 연결을 통해 프로필을 채택했습니다. – jamesallman
그 것처럼 보입니다. API 메소드는 매력처럼 작동했습니다. 그래서 남은 유일한 옵션은 신원을 전환하고 내 애플리케이션에서 호출하는 프로그램을 작성하는 것입니다 (보안 관점에서 볼 때 실제로 옳지 않다고 생각합니다). – Eyad