James改造
来源:互联网 发布:淘宝店铺的预测分析 编辑:程序博客网 时间:2024/04/29 14:19
版本: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.csdn.net/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即可通过编译
- James改造
- james使用
- 构建James
- James安装
- Apache James
- James+MySql
- james 配置
- James 总结
- James Gosling
- apche james
- james 安装
- james FSL_HELO_BARE_IP_2
- 改造blog
- 改造中文
- 改造FlexPaper
- 改造自己
- bugfree 改造
- 棚户区改造
- JavaEE知识整理系列(六)JMS
- 结合loopj的http 下载后的byte数组存为文件处理
- rails使用img
- 用Random获取不重复的随机数
- apk反编译过程问题的解决
- James改造
- 获取ajax返回的值供外层使用
- NodeJs has no method 'router' 错误解决方法
- 策略模式
- 见微知著 从Select语句看Oracle查询原理
- Duff's Device
- abap中方法file_open_dialog的使用
- What is the difference between WM_DESTROY and WM_NCDESTROY?
- ServletContext对象读取资源路径的三种方式