WebLogic的OPSS安全运行时凭据存储框架(CSF)支持two kinds of credential:标准用户名+密码密码类型,以及单个令牌或通用 type。
可以访问一些API来读取和写入CSF映射 - Java POJO,以及那些WLST access to createCred。然而,如果需要,那将创建密码样式的键/值,而不是通用条目。您可以通过企业管理器/em
创建通用条目。
有没有办法通过WLST脚本创建通用样式凭据条目?
答案 0 :(得分:0)
为此,您需要在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