在jython中将控制台用户添加到WebSphere

时间:2010-02-08 23:23:58

标签: websphere jython wsadmin

我需要使用Jython脚本将管理用户添加到WebSphere控制台。我试图打开“日志命令辅助命令”首选项,但它没有记录添加用户。它确实记录了其他东西。

我们设置了很多服务器,并且正在尝试编写整个设置过程的脚本。

干杯, 康拉德

1 个答案:

答案 0 :(得分:4)

我还没有完成管理用户,但是,我已经完成了一个JAAS用户。在脚本之后,它可能会给你足够的提示,告诉你如何做到这一点。

def dbAuthenticationAlias():
   print 'Create JAAS - J2C Authentication Alias'

   #--------------------------------------------------------------
   # Check if JAAS - J2C Authentication Alias exists
   #--------------------------------------------------------------

   global dbuseralias

   # generate user alias
   dbuseralias = nodeName + '/' + dbuser

   # get context 
   sec = AdminConfig.getid('/Cell:%s/Security:/' % cellName)

   #Get all J2C Authentication Aliases (they are separated by \n
   j2c = AdminConfig.list('JAASAuthData',sec)

   found = 0
   if len(j2c) > 0 :
      for j2cUserId in j2c.splitlines():
         if AdminConfig.showAttribute(j2cUserId,"alias") == dbuseralias:
            found = 1

   #--------------------------------------------------------------
   # Create a JAAS - J2C Authentication Alias
   #--------------------------------------------------------------
   if found == 0 :
      print 'user not found, creating'

      # create structure for J2C Authentication Alias
      jaasAttrs = [['alias', dbuseralias],['userId', dbuser],['password',dbpassword]]  

      #create J2C Authentication Alias
      AdminConfig.create('JAASAuthData', sec, jaasAttrs)

      print 'user %s created' % dbuseralias

      #saving
      adminConfigSave()
   else:
      print 'user found'

到目前为止,我遇到了问题,找到了要进行特定设置的地方。所以我在wsadmin工具中使用了以下命令来检索当前配置。

sec = AdminConfig.getid('/Cell:%s/Security:/' % cellName)
#shows all attributes for the config element given by an ID 
print AdminConfig.show(sec) 
#shows all attributes and expands the attributes where necessary 
print AdminConfig.showall(sec) 

您还可以检索服务器设置,然后在配置树中深入移动,而不是检索安全设置。

srv = AdminConfig.getid('/Node:%s/Server:%s/' % (node,server)) 
#get the process definition from server config 
prcDef = AdminConfig.list('ProcessDef',srv) 
#get JVM config from process definition 
jvm= AdminConfig.list('JavaVirtualMachine',prcDef)