2011-12-21 2 views
1

레거시 시스템 용으로 JCA-> EIS 어댑터를 직접 만들었습니다. 이전 시스템에 연결하는 동안 인증하는 데 문제가 있습니다.GlassFish에서는 JCA 어댑터를 작성하는 동안 익명 사용자를 EIS 사용자에 매핑하는 방법이 있습니까?

설명하기가 상당히 어렵습니다. GlassFish v3.1.1에서 자체 JCA 어댑터를 만들고 설치 한 후에 "Work Security Maps"라는 탭이 있습니다. 이것은 EIS 시스템에 대한 사용자 이름/암호를 입력 할 수있는 유일한 장소 인 것 같습니다. 익명 (인증되지 않은) 사용자로 EJB를 실행하려고하지만 EIS 암호를 채우기 위해 그룹 또는 사용자 매핑을 지정해야하는 것 같습니다.

JCA 어댑터의 모든 호출이 동일한 사용자 이름/암호로 EIS 시스템에 충돌하는 방법이 있습니까?

원하는 동작은 JDBC 작동 방식과 유사합니다. 데이터베이스에 대해 하나의 사용자 이름/암호가 있습니다. 내 응용 프로그램에 데이터 소스가 삽입되어 있지만 현재 사용자를 데이터베이스 사용자에 매핑 할 필요가 없습니다.

EDIT : 첫 번째 대답에서 설명한 것처럼 config 속성을 사용하여이를 구현할 수 있습니다. 그러나 이것이 JCA 사양에 따라이를 수행하는 올바른 방법이라고 생각하지 않습니다. Websphere에서는 JAAS 자격 증명을 "구성 요소 관리 인증 별명"으로 지정하고 subject를 호출 할 수 있습니다.

GlassFish에서이 작업을 수행 할 수 없습니다. Subject.getPrivateCredentials (PasswordCredential.class)를 호출하면 빈 문자열로 자격 증명 집합이 반환됩니다.

답변

1

JDBC RA (또는 최근에 사용한 ActiveMQ RA)에서 자원 어댑터 등록 정보 (ra.xml의 config-property)에 사용자 이름과 비밀번호를 설정했습니다. 리소스 어댑터에서 비슷한 방식으로 구현하려고합니다.

+0

예, 옵션이며, 우리는 처음에 그 길을 내려 갔다. 그러나 암호는 일반 텍스트로 저장됩니다. –

+0

이것은 내가 바라는 해결책이 아니지만 우리가 구현 한 것입니다. GlassFish는 콘솔의 resoruce에 대한 기본 사용자를 설정할 수있는 방법이 없습니다. 전쟁/귀로 컴파일 된 바인딩 파일에서 지정할 수 있습니다. –

0

ra.xml에서 config-property를 사용하지 않으면이 작업을 수행 할 수 있습니다. 트릭은 ejb-jar.xml을 사용해야한다는 것입니다. Pure annotation 기반 EJB가 컨테이너 기반 인증을 사용하지 않는 GlassFish의 버그가있는 것으로 보입니다.

나는 버그가이 자세히 글래스 피쉬 JIRA에서 이상 기록 얻으려고 : http://java.net/jira/browse/GLASSFISH-18096

+0

밝혀졌습니다. 버그 보고서는 받아 들여졌으며 GlassFish 3.1.2 및 4.0에서 수정 될 것입니다. –