要做到这一点,您需要在WLST内使用比提供的createCred
更低级别的API - 具体而言,您需要通过JMX MBean访问配置,例如, JpsCredentialMXBean。
下面是一个示例WLST脚本包含在图中的每个类型的一个凭证:
import os;
import sys;
import time;
admin_serverHostName = sys.argv[1]
admin_port = sys.argv[2]
admin_protocol = sys.argv[3]
connect(os.environ["WLS_USERNAME"], os.environ["WLS_PASSWORD"], admin_protocol+'://'+admin_serverHostName+':'+admin_port)
domainRuntime()
jpsCredentialStore = ObjectName("com.oracle.jps:type=JpsCredentialStore")
# create normal password credential
pc = createCredObj("username", "password", "description")
cd = pc.toCompositeData(None)
params = ["map.key", "key.name", cd]
sign = ["java.lang.String", "java.lang.String", "javax.management.openmbean.CompositeData"]
mbs.invoke(jpsCredentialStore, "setPortableCredential", params, sign)
# generic style single-token credential
params = ["map.key", "key.name", "token", "description"]
sign = ["java.lang.String", "java.lang.String", "java.io.Serializable", "java.lang.String"]
mbs.invoke(jpsCredentialStore, "reassignGenericCredential", params, sign)
disconnect()
def createCredObj(user, password, desc) :
from oracle.security.jps.mas.mgmt.jmx.credstore import PortablePasswordCredential
#Create Password Credential object
pc = PortablePasswordCredential(user, password, desc)
return pc