如何通过WLST在WebLogic OPSS CSF中创建GenericCredential?

时间:2016-11-29 10:54:11

标签: weblogic

WebLogic的OPSS安全运行时凭据存储框架(CSF)支持two kinds of credential:标准用户名+密码密码类型,以及单个令牌或通用 type。

可以访问一些API来读取和写入CSF映射 - Java POJO,以及那些WLST access to createCred。然而,如果需要,那将创建密码样式的键/值,而不是通用条目。您可以通过企业管理器/em创建通用条目。

有没有办法通过WLST脚本创建通用样式凭据条目?

1 个答案:

答案 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
相关问题