我目前正在将Reddit OAuth2登录到我的网络应用程序中.握手和令牌交换在本地测试时工作正常但在服务器上运行时(托管在'OpenShift'DIY盒式磁带上)我收到以下错误:
java.security.InvalidAlgorithmParameterException: Prime size must be
multiple of 64, and can only range from 512 to 1024 (inclusive)
Run Code Online (Sandbox Code Playgroud)
结果如何
java.lang.RuntimeException: Could not generate DH keypair
Run Code Online (Sandbox Code Playgroud)
我一直在搜索大部分时间并找到了不同的解决方案,从更改Java版本到使用BouncyCastle.但是,我正在使用Scribe库,所以我不认为我可以实现BouncyCastle而不用分叉和改变划线的基础,这样做会破坏它的目的.
安装JCE Unlimited Strength也出现了,但我不能在OpenShift上做到这一点,因为没有root访问权限(可能能够让他们的团队中的一个人去做).
正在使用的java版本(取自java -version):
本地试验机:
java version "1.7.0_51"
OpenJDK Runtime Environment (IcedTea 2.4.4) (7u51-2.4.4-1ubuntu1)
OpenJDK 64-Bit Server VM (build 24.45-b08, mixed mode)
Run Code Online (Sandbox Code Playgroud)
OpenShift服务器:
java version "1.7.0_51"
OpenJDK Runtime Environment (rhel-2.4.4.1.el6_5-i386 u51-b02)
OpenJDK Server VM (build 24.45-b08, mixed mode)
Run Code Online (Sandbox Code Playgroud)
我无法解决这个问题.希望我是愚蠢或误解的东西,所以任何可能的解决方案都会很棒!
-
编辑1
返回错误的请求代码(正如我所提到的,使用Scribe,因此可能没什么用处).令牌端点正在https://ssl.reddit.com/api/v1/access_token使用POST.正如我上面所说,这适用于我的测试机器.
OAuthRequest request …Run Code Online (Sandbox Code Playgroud)