2012-10-18 2 views
3

나는 하나의 서버, 어플리케이션의 프론트 엔드와 백엔드가 실행되는 JBoss AS7로 구성된 분산 어플리케이션을 가지고 있습니다. 네트워크의 다른 컴퓨터에서 실행중인 여러 클라이언트가 특정 개체를 가져 오기 위해 JBoss의 JNDI 초기 컨텍스트를 가져옵니다. 각 클라이언트는 고유하며 구성을 지정하지 않고 식별해야합니다. 내 접근 방식은 그들의 주소를 얻고 그들과 관련된 데이터를 매핑하는 것입니다 (모든 연결된 클라이언트간에 균등하게 맵핑 된 물건 풀).JBoss AS7에서 EJB 메소드의 호출 원격 클라이언트의 주소를 얻는 방법

EJB 메소드 호출 클라이언트의 IP 주소는 어떻게 얻을 수 있습니까? 이미 발견

은 (보스 4.x의 예에 사용) 스레드 이름에서 정보를 얻는 방법을 설명하는 '해킹', 그러나 그것은 항상 같은 반환

EJB의 기본 - 당신이 어떤 상황에 코드 또는 메서드 호출을 제공하는 경우 7

는 그것의 소스를 추가하십시오 수 How can you get the calling ip address on an ejb call?

를 참조하십시오? 내가 사용 휴식 기반의 웹 서비스 계층을 통해 EJB에 노출 될 수 있습니다 될 수 있습니다 EJB3, Remoting3 및 이와 유사한 물건

+0

ejb 보안을 사용하고 인증을 통해 각 클라이언트를 식별하는 대안은 무엇입니까? 즉 EJB 컨텍스트의 callerPrincipal()? 그냥 생각. –

+0

당신의 솔루션을 사용해 보았지만 _ejb :/_ context를 찾지는 않았으므로 _java :/_ context 때문에 익명의 principal을 얻게되었습니다. 인증은 JBoss의 AdministrationRealm을 통해 이루어지며 추가 보안이 추가되지 않습니다. RMI를 사용하여 원하는 것을 수행 할 수 있다는 것을 알고 있지만 EJB를 사용하는 것을 선호합니다. –

+0

이 설명을 보면서 직접 해보지는 않았지만 이것이 콩에서 호출자를 식별하는 방법 인 것 같습니다 : https://community.jboss.org/wiki/JBoss7AndEjbRemoteCallWithSecurity –

답변

0

그냥 아이디어,

를 검색하여 뭔가를 찾을 수 없습니다. 이렇게하면 원격 호스트 이름을 쉽게 찾을 수 있으며 필터 서블릿을 사용하여 요청을 허용하거나 허용하지 않을 수도 있습니다.

@EJB를 사용하여 JAX-RS를 사용한다고 가정 할 때 빈을 나머지 클래스에 삽입 할 수 있습니다.

관련 문제