【发布时间】:2018-08-02 15:57:16
【问题描述】:
我正在一个 heroku free dyno 上运行 Java 8 Spring Boot 应用程序。我的应用程序是一个 REST API,它驱动一个单页应用程序,该应用程序使用 JWT 使用 Auth0 进行保护。
这在其他主机(AWS 等)上运行良好,但在 heroku 上,当我运行应用程序、身份验证和 javascript 客户端调用 REST api 时,我收到以下错误
Caused by: java.lang.IllegalArgumentException: protocol = https host = null
2018-02-14T13:48:35.702463+00:00 app[web.1]: at sun.net.spi.DefaultProxySelector.select(DefaultProxySelector.java:177) ~[na:1.8.0_161-heroku]
2018-02-14T13:48:35.702464+00:00 app[web.1]: at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1150) ~[na:1.8.0_161-heroku]
2018-02-14T13:48:35.702465+00:00 app[web.1]: at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1050) ~[na:1.8.0_161-heroku]
2018-02-14T13:48:35.702466+00:00 app[web.1]: at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177) ~[na:1.8.0_161-heroku]
2018-02-14T13:48:35.702479+00:00 app[web.1]: at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1564) ~[na:1.8.0_161-heroku]
2018-02-14T13:48:35.702480+00:00 app[web.1]: at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1492) ~[na:1.8.0_161-heroku]
2018-02-14T13:48:35.702481+00:00 app[web.1]: at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:263) ~[na:1.8.0_161-heroku]
2018-02-14T13:48:35.702482+00:00 app[web.1]: at java.net.URL.openStream(URL.java:1045) ~[na:1.8.0_161-heroku]
2018-02-14T13:48:35.702484+00:00 app[web.1]: at com.auth0.jwk.UrlJwkProvider.getJwks(UrlJwkProvider.java:58) ~[jwks-rsa-0.2.0.jar!/:na]
我相信这是一个代理问题。谁能告诉我来自heroku dyno的http请求是否通过代理重定向?如果是这样,我相信我可以通过在我的 JVM 启动中添加以下标志来解决这个问题
-Dhttp.proxy=...
我非常坚持这一点,如果没有解决方案,我无法在 heroku 上成功运行我的应用程序。有没有其他人在 Heroku 上运行时遇到过类似的情况?
非常感谢。
【问题讨论】:
标签: java spring spring-boot heroku auth0