首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >spring-boot应用程序的Apache2代理,Oauth2问题

问spring-boot应用程序的Apache2代理,Oauth2问题
EN

Stack Overflow用户
提问于 2019-06-26 21:23:04
回答 1查看 72关注 0票数 1

我在8080端口上运行Tomcat。我有一个apache2代理,它有SSL证书,它将所有加密的流量从443端口传递到8080端口。除了facebook身份验证之外,所有的工作都很好。

如果apache2处于关闭状态,而tomcat中的SSL处于打开状态,则它可以正常工作。我相信流量加密的问题,也许facebook从我的非SSL tomcat服务器上检索到了请求?

我的apache配置:

代码语言:javascript
复制
     ServerName thing-tracker.ga         SSLEngine On         SSLCertificateFile /opt/cert/cert.pem         SSLCertificateKeyFile /opt/cert/privkey.pem         SSLCertificateChainFile /opt/cert/chain.pem
代码语言:javascript
复制
    DefaultType text/html
    ProxyRequests off
    ProxyPreserveHost On

    RewriteEngine On
    RewriteCond %{HTTP:Upgrade} =websocket
    RewriteRule /(.*)           ws://localhost:8080/$1 [P,L]
    RewriteCond %{HTTP:Upgrade} !=websocket
    RewriteRule /(.*)           http://localhost:8080/$1 [P,L]

   # ProxyPass / http://localhost:8080/
   # ProxyPassReverse / https://localhost/

​

错误:

由于异常,从request /login/oauth2/code/facebook转发到错误页面

[读取OAuth 2.0错误时出错: JSON解析错误:无法从START_OBJECT令牌中反序列化java.lang.String实例;

嵌套异常是com.fasterxml.jackson.databind.exc.MismatchedInputException:无法反序列化java.lang.String的实例,该实例超出Source: (sun.net.www.protocol.http.HttpURLConnection$HttpInputStream); line: 1, column: 10处的START_OBJECT标记;

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-17 10:09:43

尝试在apache上强制使用https:

RequestHeader set X-Forwarded-Proto https

在您的spring boot属性中添加:

代码语言:javascript
复制
server.use-forward-headers=true
server.tomcat.remote_ip_header=x-forwarded-for
server.tomcat.protocol_header=x-forwarded-proto

我也有同样的问题,但这个问题解决了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56773884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档