2016-05-19 51 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 
}