sunJCE or ibmJce,was服务器下使用des的注意点
最近开发了一个应用,在tomcat下一切ok,到was上有报错。 打开debug日志,没有异常?? 继续调查发现是我们的程序引用了一个sun很久以前的jar.这个jar需要单独打开message日志 在一堆日志中找到了:java.security.NoSuchProviderException: no such provider: SunJCE
at sun.security.jca.GetInstance.getService(GetInstance.java:82)
at javax.crypto.b.a(Unknown Source)
at javax.crypto.SecretKeyFactory.getInstance(Unknown Source)
at
com.iplanet.services.util.JCEEncryption.setPassword(JCEEncryption.java:369)
at com.iplanet.services.util.Crypt.createInstance(Crypt.java:126)
at com.iplanet.services.util.Crypt.initialize(Crypt.java:97)这个包里使用了des加密,但是sun的组件,当然是使用sunJDK里自己sunJCE
而IBM was服务器里没有这个sunJCE的provider,于是就 no such provider
因此,我们只要提供这个sunjce的provider就可以使程序正常运行而无需修改。
常规的方法,就是下载sunjce_provider.jar,修改jdk的policy,启用这个jce(这个是jdk的安全配置,不能直接引入相应的jar包)
具体IMB的文档参考:http://www.ibm.com/developerworks/websphere/library/techarticles/0306_yu/yu.html
不过这个sun的jar包里却预留了解决方案,反编译这个jar,可以看到sun写这个jar的时候提供了配置项(32个赞):CRYPTO_DESCRIPTOR_PROVIDER = System.getProperty("amCryptoDescriptor.provider", "SunJCE");
KEYGEN_ALGORITHM_PROVIDER = System.getProperty("amKeyGenDescriptor.provider", "SunJCE");Cipher.getInstance(CRYPTO_DESCRIPTOR, CRYPTO_DESCRIPTOR_PROVIDER)
this.pbeKey = SecretKeyFactory.getInstance(KEYGEN_ALGORITHM, KEYGEN_ALGORITHM_PROVIDER).generateSecret(new PBEKeySpec(paramString.toCharArray()));而IbmJCE与SunJCE都遵循jce1.2.1规范,这里使用是兼容的
因此只要添加应用程序的jvm参数 -DamCryptoDescriptor.provider=IBMJCE -DamKeyGenDescriptor.provider=IBMJCE,问题解决下面是官方的说明:
https://java.net/projects/opensso/lists/dev/archive/2008-10/message/22
-DamCryptoDescriptor.provider=IBMJCE -DamKeyGenDescriptor.provider=IBMJCEERROR: Crypt: failed to set password-based keyjava.security.NoSuchProviderException: no such provider: SunJCE
sunJCE or ibmJce,was服务器下使用des的注意点的更多相关文章
- linux服务器下添加字体
版权声明:本文为楼主原创文章,未经楼主允许不得转载,如要转载请注明来源. 引言:这两天在开发一个动态生成海报的东西(图片拼接,图片水印),开发在windows下没有问题,图片和文字都能正常的生成出来. ...
- IIS服务器下301跳转是怎么样实现的?
301跳转的用法很多,对于一名SEO来说,301转向是必须掌握的本领,但是对于301转向而言,许多人都并不清楚,301跳转以后,需不需要对原网站进行优化,再次提及一边301跳转的定义. 所谓301跳转 ...
- tomcat与IIS在多IP服务器下的支持
同一个服务器下,双IP(或更多IP),实现tomcat与IIS公用80端口. 操作其实也很简单的,首先禁用iis的套接字池,iis绑定一个ip,然后tomcat在绑定另一个ip,最后重启下服务器即可. ...
- 用linux服务器下的/dev/shm/来释放磁盘的压力
巧用linux服务器下的/dev/shm/来释放磁盘的压力 浏览:646 | 更新:2013-06-18 18:08 | 标签: 磁盘 tmpfs是Linux/Unix系统上的一种基于内存的文件系统. ...
- Linux服务器下没有root权限装Matlab R2013a
Matlab R2013a Unix版下载地址 注意:由于我是在单位的集群系统上装Matlab,没有root权限,故下载下来的.iso文件不能在linux下用mount命令挂载,故先在Win下解压,再 ...
- 嵌入式开发——boa服务器下的ajax与cgi通信
博主最近在最有做一个嵌入式课程设计,要求是利用基于cortax a8的物联网实验箱做一个简单的嵌入式网页交互系统作为课程设计来验收评分.因为本身自己是学前端的,所以网页部分并不是重点,主要是和boa服 ...
- CentOS服务器下对mysql的优化
原文链接: CentOS服务器下对mysql的优化 一.mysql的优化思路 mysql的优化分为两方面: 1. 服务器使用前的优化 2. 服务使用中的优化 二.mysql的基础优化步骤 1. 硬件级 ...
- Linux服务器下对Oracle作Rman备份
由于工作需要,最近要对几台Linux系统下的Oracle数据库进行Rman备份,就在操作的同时,整理了一下,方便今后作为资料进行查阅. ------------------------Linux服务器 ...
- Docker Swarm搭建多服务器下Docker集群
对于有多台服务器来讲,如果每一台都去手动操控,那将会是一件非常浪费时间的事情,毕竟时间这东西,于我们而言,十分宝贵,或许在开始搭建环境的时候耗费点时间,感觉是正常的,我也如此,花费大堆时间在采坑和填坑 ...
随机推荐
- 【转】Android中的内存管理--不错不错,避免使用枚举类型
原文网址:http://android-performance.com/android/2014/02/17/android-manage-memory.html 本文内容翻译自:http://dev ...
- Sql语句中IN等方面的用法
select * from txt1 select * from txt2 select * from txt1 where name in (select name from txt2 where ...
- [C#错误] 未找到类型或命名空间名称" " (是否缺少 using 指令或程序集引用?)
现象:编译项目时提示未找到类型或命名空间名称" " (是否缺少 using 指令或程序集引用?)解决方法:如果是未找到类型,检查是否引用了类型所在的命名空间,使用using指令.如 ...
- Triangle——LeetCode
Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent n ...
- Android 各版本信息 (维基百科)
The following tables show the release dates and key features of all Android operating system updates ...
- has-a关系——包含对象成员的类
#ifndef _STUDENT_H_ #define _STUDENT_H_ #include <iostream> #include <string> #include & ...
- banana pro 板子
http://www.lemaker.org/cn/article-23-1.html
- Linux编程之自定义消息队列
我这里要讲的并不是IPC中的消息队列,我要讲的是在进程内部实现自定义的消息队列,让各个线程的消息来推动整个进程的运动.进程间的消息队列用于进程与进程之间的通信,而我将要实现的进程内的消息队列是用于有序 ...
- 705 - Slash Maze
By filling a rectangle with slashes (/) and backslashes ( ), you can generate nice little mazes. Her ...
- 日积月累:ProguardGui进行jar包代码混淆
前面文章<Proguard进行源代码混淆>讲解过怎么使用Proguard工具对Android的源代码进行混淆的方法(感兴趣的朋友可以访问:http://blog.csdn.net/p106 ...