2016-11-29 46 views
0

WebLogic的OPSS安全运行时间凭证存储框架(CSF)支持two kinds of credential:标准用户名+密码密码类型,以及单个令牌或通用类型。如何通过WLST在WebLogic OPSS CSF中创建GenericCredential?

有几个API可以读取和写入CSF映射 - Java POJO,并且有WLST access to createCred。然而,这将创建密码风格的键/值,而不是通用的条目,如果需要的话。您可以通过企业管理器/em创建一个通用条目。

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

回答

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