【发布时间】:2015-08-22 01:56:08
【问题描述】:
我对 java 有一个奇怪的问题 - 我在 Intellij Idea 中编程,我正在使用这个小代码对站点进行基本授权
String authString = name + ":" + password;
byte[] binaryData = authString.getBytes();
String authStringEnc = new String(Base64.encodeBase64(binaryData));
URL url = new URL(webPage);
URLConnection urlConnection = url.openConnection();
urlConnection.setRequestProperty("Authorization", "Basic " + authStringEnc);
InputStream is_auth = urlConnection.getInputStream();
InputStreamReader isr = new InputStreamReader(is_auth);
这段代码运行了几个星期,但我继续编写程序。然后昨天我看到 - 当我在 Intellij 中单击运行时程序可以工作,但是当我启动一个 .jar 文件时,此行无法完成:
String authStringEnc = new String(Base64.encodeBase64(binaryData));
我不知道为什么,但是在执行此行时程序会停止。但是当我在 Intellij 中单击运行或调试时,一切正常。
顺便说一句。我正在将此库用于 encodeBase64:
import org.apache.commons.codec.binary.Base64;
如果您不知道它为什么不起作用,也许您可以与我分享对网站进行基本授权的想法。提前致谢。
【问题讨论】:
-
在我看来,手动处理身份验证和授权通常不是一个好主意。使用 Spring Security 等框架会容易得多,并为您提供久经考验的解决方案。
标签: java intellij-idea jar