2013-04-26 4 views
0

우리 응용 프로그램은 원격 컨텍스트에서 특정 IP 주소를 필터링하기 위해 AuthorizationModule을 사용합니다. 이 모듈은 JBoss 5.1.0.GA (with a known workaround)에서 완벽하게 작동하지만 Thread 이름 패턴이 크게 변경되었으므로 EAP-6.1.0.Alpha에서 실패합니다.JBoss 7의 AuthorizationModule에서 원격 클라이언트 IP 얻기

Q : 다음과 같은 상황에서 클라이언트 IP 주소를 얻을 수 있습니까?

import org.jboss.security.authorization.modules.AbstractAuthorizationModule; 

public class MyAuthorizationModule extends AbstractAuthorizationModule { 
    @Override 
    public int authorize(Resource resource) { 
     //Caller is a standalone Java client, that connects to JBoss 7.x using EJB Remoting 
     String callerIP = ...; 
    } 
} 

지금까지 시도했습니다 무엇 :

  1. java.rmi.server.RemoteServer.getClientHost()를 호출. 결과는 ServerNotActiveException입니다.

  2. 구문 분석 JBossThread 이름 (relateddiscussions)입니다.

+0

org.apache.catalina.valves.RemoteAddrValve 밸브를 사용하여 JBoss 구성으로 IP 주소를 필터링하지 않는 이유는 무엇입니까? – Thomas

+0

@ 토마스 : 내 생각에 이것은 [웹] (http://www.mastertheboss.com/jboss-web-server/using-web-valves-with-jboss-7) 모듈에서만 유용 할 것으로 생각합니다. _remoting_ 연결을 필터링 하시겠습니까? –

답변

0

저는 JBoss Community의 도움으로 제 문제를 해결했습니다. 그러나 이것은 애플리케이션 서버 (EJB3 모듈)의 내부에 패치를 적용한 이후로 우아한 해결책은 아닙니다. 자세한 내용은 커뮤니티 게시물을 확인하십시오.