2013-09-30 44 views
1

我使用WebSphere 8.5綁定容器使用Jython腳本

我已經找到了如何使用用戶名和密碼使用Jython腳本創建JAASAuthData管理的認證別名與數據源'的WebSphere:TYPE = SERVER,*')

cellName = AdminControl.getAttribute(objServerAttrs, 'cellName') 
sec = AdminConfig.getid('/Cell:%s/Security:/' % cellName) 
jaasAttr = [['alias', jaasAlias],['userId', jaasUser],['password', jaasPass]] 
jaasAuthData = AdminConfig.create('JAASAuthData', sec, jaasAttr) 

,以及如何創建數據源:

dsAttrs = [['name', 'myDS1'], ['jndiName','jdbc/MY/DS1']]  
newDs = AdminConfig.create('DataSource', provider, dsAttrs) 

現在我需要將該JAASAuthData與我的DataSource綁定爲「容器管理的認證別名」,不幸的是,我無法在API中找到任何內容,檢查現有DataSources的屬性或該任務的任何示例。如何創建這樣的綁定?

回答

0

你需要指定authDataAlias屬性:

dsAttrs = [['name', 'myDS1'], ['jndiName','jdbc/MY/DS1'], ['authDataAlias',jaasAlias]]  
newDs = AdminConfig.create('DataSource', provider, dsAttrs) 
+0

這設置了組件管理的認證別名,我需要設置容器管理的認證別名。 –

0

配置容器管理的認證別名的推薦方法是把它放在你的應用程序部署中的資源引用。

它仍然是允許的(雖然不建議使用)對數據源級別進行配置:

newDs = AdminConfig.create('DataSource', provider, dsAttrs) 
mapping = AdminConfig.showAttribute(newDs, 'mapping') 
AdminConfig.modify(mapping, [['mappingConfigAlias', jaasAlias], ['authDataAlias', jaasAlias]]) 

BTW:你的腳本是,如果你使用WDR庫http://wdr.github.io/WDR/(我的主要貢獻者之一)更容易維護。

jaasAlias = 'TheAuthAliasName' 
provider = getid1('/JDBCProvider:TheProviderName/') 
security = getid1('/Cell:/Security:/') 
security.assure('JAASAuthData', {'alias':jaasAlias}, userId = 'user', password = 'password') 
ds = provider.assure('DataSource', {'name':'myDS1'}, jndiName = 'jdbc/MY/DS1') 
# component-managed authentication: 
ds.authDataAlias = jaasAlias 
# ... and container-managed authentication: 
ds.mapping.mappingConfigAlias = jaasAlias 
ds.mapping.authDataAlias = jaasAlias 
save() 
sync() 

上述腳本可以安全地重新運行而不會失敗或重複對象。

相關問題