2016-05-19 86 views
0

我使用的是Weblogic 12c,並有一個帶有jndiName「myDataSource」的數據源。Grails查找安全的JNDI

數據源允許任何人查詢訪問,我可以做看它通常爲:

dataSource{ 
     jndiName = "myDataSource" 
} 
在配置文件中

然後,我將一些安全設置添加到dataSource,它只指定特定用戶或管理員有權訪問jndiName執行查找操作。

如果我現在嘗試查找dataSource,我會收到一個異常,指出匿名用戶在資源上沒有查找權限。 (如預期)

我的問題是:
Grails是否有任何功能來處理查找憑證,或者是否必須手動設置具有正確憑據的initialContext,以便查找成功?

任何幫助表示讚賞。
謝謝大家。

回答

0

如果有人需要這個工程解決方案:從Config.groovy中 刪除數據源,並在resources.groovy使用

jndiTemplate(org.springframework.jndi.JndiTemplate) { bean -> 
    bean.scope = "prototype" 
    environment = [ 
     "java.naming.factory.initial":"weblogic.jndi.WLInitialContextFactory", 
     "java.naming.security.principal" : "username", 
     "java.naming.security.credentials": "password" 
     ] 
} 

dataSource(org.springframework.jndi.JndiObjectFactoryBean){ 
    jndiTemplate = ref(jndiTemplate) 
    jndiName = "name" 
    exposeAccessContext=true 
}