2010-01-29 5 views
2

Websphere Application Server 내의 다른 배치 된 애플리케이션에 JMX 호출을하고 싶습니다. 사용자가 올바른 자격 증명을 사용하여 로그인을 수행하는 웹 응용 프로그램 내에서이 작업을 수행하면 정상적으로 작동합니다. 그러나 로그인 한 사용자와 아무런 연결도없는 응용 프로그램의 타이머 트리거 부분에서 JMX 호출을 시도하면 사용자가 권한이 없다고 말하는 javax.management.JMRuntimeException : ADMN0022E 이 발생합니다. JMX를 사용합니다.Websphere의 JMX에 대한 프로그래밍 인증

제 질문은 : 어떻게하면 JMX 작업에 몇 가지 자격 증명을 제공 할 수 있습니까? 프로그래밍 방식으로 로그인을 "시뮬레이트"하는 방법 또는 호출이 완료되는 것과 같은 인증 대상을 제공하는 방법이 있습니까? 그리고 실제 사용자의 사용자 이름과 암호를 코드/속성 파일에 넣지 않으려면 어떻게해야합니까?

중요한 경우 : 우리는 Websphere 6.1을 사용하고 Spring과 함께 작업합니다.

답변

2

IBM WebSphere Application Server V6.1 Security Handbook 장 9.6 알려준 :

CallbackHandler loginHandler = new com.ibm.websphere.security.auth.callback.WSCallbackHandlerImpl("username","password"); 
LoginContext lc = new LoginContext("WSLogin", loginHandler); 
lc.login(); 
Subject subject = lc.getSubject(); 
PrivilegedAction<Whateverresulttype> action = new PrivilegedAction<Whateverresulttype>() { 
    public Health run() { 
     return Health.valueOf(mbean.whatevercall()); 
    } 
}; 
Whateverresulttype res = (Whateverresulttype) com.ibm.websphere.security.auth.WSSubject.doAs(subject, action); 

지금은 알 필요가있는 유일한 것은 내가 코드에 실제 사용자의 자격 증명을 넣어 피할 수있는 방법이다. 8-)

관련 문제