如何在apache shiro.ini文件中从java类读取数据源的密码

时间:2013-12-11 04:37:17

标签: java shiro

我想从java类设置数据源密码。所以我配置apache shiro.ini文件来从java类中读取密码字段,但它不起作用。

这是我的数据源shiro.ini文件

     ds = com.mysql.jdbc.jdbc2.optional.MysqlDataSource
     ds.serverName = localhost
     ds.user = root

     dbpassword=com.test.password.PasswordFactory   //this is class name
     ds.password=$dbpassword.password
     ds.databaseName = test
     jdbcRealm.dataSource = $ds

和PasswordFactory java类是

package com.test.password;

public class PasswordFactory {

public String password; 
public PasswordFactory(){
    password="root";
}   
public String getPassword() {
    return password;
}
public void setPassword(String password) {
    this.password = password;
}
  }

这将抛出异常 id [dbpassword.password]的对象尚未定义,因此无法引用。请确保按照创建对象的顺序定义对象,以供将来参考。

1 个答案:

答案 0 :(得分:0)

您已将dbpassword设置为整个类PasswordFactory,而工厂类本身没有变量“password”;相反,只有PasswordFactory的实例才有密码。你需要构造一个PasswordFactory实例,使用shiro来完成相当于java代码的工作

dbpassword=new com.test.password.PasswordFactory()