您的位置:程序门 -> websphere ->



急 !! 关于 remote cluster queue 的权限认证问题。


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


急 !! 关于 remote cluster queue 的权限认证问题。
发表于:2007-07-28 17:14:09 楼主
我的产品是一个服务器程序。   用户登陆服务器,发出请求。服务器根据用户请求,对mq作相应的操作。产品要求使用用户(登陆并发出请求的)的userid   进行mq权限认证,   而不是启动服务器的userid(启动服务器的用户必然属于mqm组)。   所以,我在打开queue时,   使用了“mqoo_alternate_user_authority”,   并将‘alternateuserid'设置为登陆用户的用户名。

最近我们准备支持   mq   cluster。在进行单元测试时,发现当我使用一个无效用户时,我仍然能够成功打开remote   cluster   queue,并发送消息。这与我们的预期不符。   不知有哪位大侠知道为什么?   或者指出我程序中的漏洞。  

非常感谢。

以下是我的环境:
  queue   manager   'bravado_mscai '   加入了   cluster   ‘inv_mscai '.   在这个cluster中   存在一个remote   cluster   queue   "mscaiq "。   该队列不在   queue   manager   'bravado_mscai '.   我的服务器程序连接到 'bravado_mscai ',   将 'alternateuserid '   设置为一根本不存在的用户 'sa ',   使用option   'mqoo_alternate_user_authority ',   成功打开了   remote   cluster   queue     'mscaiq '。  

在测试中,所有的security设置我都是使用默认的。public   用户组不拥有任何mq   权限。如果我用 'sa '去打开cluster   xmitq   :   system.cluster.transmit.queue,   必然失败(这与我的预期相符)。

以下是我的相关代码:
> > > > > > > > > > > > > > > > > > >
mqcd   clientconn   =   {mqcd_client_conn_default};
mqod   mqod   =   {mqod_default};
mqhconn   hconn;   /*   handle   to   mq   connection   */
.....
mqconnx(qmname,
&connect_options,
&hconn,
&compcode,
&connreason);
.....
mqlong   o_options;
o_options   =   mqoo_fail_if_quiescing   ¦   mqoo_inquire;

/*   set   remote   cluster   queue   'masterq '   to   mqod '*/
strncpy(mqod.objectname,   qname,   mq_q_name_length);

o_options   ¦=   mqoo_output;
o_options   ¦=   mqoo_alternate_user_authority;

/*set   a   invalid   user   'sa '   */
strncpy(mqod.alternateuserid,   "sa ",   3);

/*   open   the   remote   cluster   queue*/
mqopen(hconn,   &mqod,   o_options,   &hobj,
&compcode,   &connreason);
...

/*close   it   */
o_options   =   mqco_none;
mqclose(hconn,   &hobj,o_options,&compcode,&connreason);
...
> > > > > > > > > > > > > > > > > > > >
发表于:2007-08-21 09:58:471楼 得分:0
帮你顶下


快速检索

最新资讯
热门点击