Dan*_*Dan 8 java provider legacy ssl
我正在使用2003年的一些代码.有一个对以下类的引用:
new com.sun.net.ssl.internal.ssl.Provider()
Run Code Online (Sandbox Code Playgroud)
它导致错误:
Access restriction: The type Provider is not accessible due to restriction on required library /Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home/jre/lib/jsse.jar
有没有人对使用这个类的合适替代方案有任何建议?
大多数情况下,您实际上并不需要自己创建或获取提供程序实例.正如Oracle Providers文档所述:
通用应用程序不应该向特定提供商请求加密服务.那是:
Run Code Online (Sandbox Code Playgroud)getInstance("...", "SunJCE"); // not recommended vs. getInstance("..."); // recommended
此外,只要有供应商的重载参数,它往往采用字符串或实例,但字符串(名称)可能更常见.(有时传递实例可能很有用,例如对于某些PKCS#11配置,但这很不寻常.)
如果你真的想要掌握一个特定的实例,你可以使用Security.getProvider(name).您可以在提供程序文档中找到相应的名称.
扔掉那行代码.同时丢弃对com.sun.net.ssl包及其子包的任何引用:修复导入,以便引用它们中的类javax.net.ssl.
这是JDK 1.4之前的代码,从JSSE单独下载开始.
您可以在 Eclipse 首选项中将其转变为警告或非事件Java->Compiler->Errors/Warnings->Deprecated and restricted API。请注意,正如其他人所说,这不是最佳实践,当您有其他选择时应该避免。
| 归档时间: |
|
| 查看次数: |
18344 次 |
| 最近记录: |