Spring Websphere中JMX的编程身份验证

Spring Websphere中JMX的编程身份验证,spring,authentication,login,websphere,jmx,Spring,Authentication,Login,Websphere,Jmx,我们希望对websphereapplicationserver中其他部署的应用程序进行JMX调用。如果您在一个web应用程序中使用正确的凭据进行登录,那么这样做很好。但是,如果您尝试进行JMX调用,比如说,从应用程序中没有连接到任何登录用户的计时器触发部分进行调用,您会得到一个 javax.management.JMRuntimeException:ADMN0022E 也就是说你没有使用JMX的权利 所以我的问题是:如何为JMX操作提供一些凭据?有没有一种方法可以通过编程“模拟”登录,或者提供身

我们希望对websphereapplicationserver中其他部署的应用程序进行JMX调用。如果您在一个web应用程序中使用正确的凭据进行登录,那么这样做很好。但是,如果您尝试进行JMX调用,比如说,从应用程序中没有连接到任何登录用户的计时器触发部分进行调用,您会得到一个 javax.management.JMRuntimeException:ADMN0022E 也就是说你没有使用JMX的权利

所以我的问题是:如何为JMX操作提供一些凭据?有没有一种方法可以通过编程“模拟”登录,或者提供身份验证主题以完成调用?如何避免将实际用户的用户名和密码放入代码/属性文件中

重要的是:我们使用Websphere 6.1,并使用Spring。

第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);
CallbackHandler loginHandler=new com.ibm.websphere.security.auth.callback.WSCallbackHandlerImpl(“用户名”、“密码”);
LoginContext lc=新的LoginContext(“WSLogin”,loginHandler);
lc.login();
Subject-Subject=lc.getSubject();
PrivilegedAction=newprivilegedaction(){
公共卫生运行(){
返回Health.valueOf(mbean.whatevercall());
}
};
Whateverresulttype res=(Whateverresulttype)com.ibm.websphere.security.auth.WSSubject.doAs(subject,action);
我现在唯一需要了解的是如何避免将实际用户的凭据放入代码中。8-)