【问题标题】:how to read password from java class for the data source in apache shiro.ini file如何从 java 类中读取 apache shiro.ini 文件中数据源的密码
【发布时间】:2013-12-28 22:08:18
【问题描述】:

我想从 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] 的对象尚未定义,因此无法引用。请确保按照创建对象的顺序定义对象并使其可供将来参考。

【问题讨论】:

    标签: java shiro


    【解决方案1】:

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

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

    【讨论】:

    • 抛出异常 org.apache.shiro.config.ConfigurationException:无法为名为“dbpassword”的对象实例化类 [new com.test.password.PasswordFactory()]。请确保您已正确指定完全限定的类名。
    • @user2549122 我对 shiro 不熟悉,而是编写了等效的 Java 代码。搜索相关文档以了解如何在 shiro 中构造 Java 对象,然后随意建议使用正确的 shiro 语法进行编辑。
    猜你喜欢
    • 2017-01-13
    • 2016-09-28
    • 1970-01-01
    • 2021-08-18
    • 1970-01-01
    • 1970-01-01
    • 2015-01-30
    • 1970-01-01
    • 2010-09-29
    相关资源
    最近更新 更多