James改造

本文介绍如何将Apache James邮件系统的密码验证方式更改为明文验证,并提供在JDK1.6环境下编译Apache James的具体步骤及解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

版本:apache-james-2.3.2

改为明文验证

参考:http://blog.sina.com.cn/s/blog_55317f42010091u1.html

修改org.apache.james.userrepository.DefaultUser

verifyPassword方法改为:

public boolean verifyPassword(String pass) {
        /*try {
            String hashGuess = DigestUtil.digestString(pass, algorithm);
            return hashedPassword.equals(hashGuess);
        } catch (NoSuchAlgorithmException nsae) {
        throw new RuntimeException("Security error: " + nsae);
    }*/
    return hashedPassword.equals(pass);
    }

 

setPassword方法改为

public boolean setPassword(String newPass) {
        /*try {
            hashedPassword = DigestUtil.digestString(newPass, algorithm);
            return true;
        } catch (NoSuchAlgorithmException nsae) {
            throw new RuntimeException("Security error: " + nsae);
        }*/
        hashedPassword=newPass;

return true;
    }

jdk1.6下编译出错解决,参考http://blog.youkuaiyun.com/yong_yuanyuan/article/details/5993047,以下为全文

这段时间公司需要搞一个邮件系统,需要根据自己的功能对James进行二次开发,但是在用1.6编译James的时候出现如下错误提示

org.apache.james.util.mordred.PoolConnEntry 不是抽象的,并且未覆盖 java.sql.Connection 中的抽象方法 createStruct(java.lang.String,java.lang.Object[])

 

经过分析有2个方法可以解决,可以换jdk版本编译,把jdk换到1.5可以通过编译,但是公司需要把这套邮件系统和hadoop结合,而hadoop需要jdk1.6的支持,所以必须通过修改james源码来通过编译。

 

1.找到src-java-org-apache-james-util-mordred-poolconnentry java文件,删掉implements java.sql.Connection

然后在该文件中编写一个获得Connection的方法

public Connection getConn()

{

     return connection;

}

 

2.找到src-java-org-apache-james-util-mordred-JdbcDataSource java文件,在public Connection getConnection() 中找到return entry(有三次调用该语句),修改为return entry.getConn();

 

3.在james目录下找到default.properties文件,找到如下2行

jdk.source = 1.4
jdk.target = 1.4

把上面2行中的1.4换为1.6

 

4.在cmd下build即可通过编译

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值