这是一个类似的问题
嗨@amir-dh,
您能否尝试在以下位置启用反向代理
wso2am3.0.0/repository/deployment/server/jaggeryapps/publisher/site/public/theme/ defaultTheme.js
const REVERSE_PROXY = {
启用:真,
来源:'api.am.wso2.com',
};
@isharac
我确实设置了反向代理
const REVERSE_PROXY = {
启用:真,
产地: 'MYDOMAIN',
};
但再次不起作用。 当我打开发布者门户时,它给出了错误invalid_callback
@amir-dh,
您需要相应地更新回调 URL。
这是独立部署吗?
我们已经在 NGINX ingress 中发现了问题,但是如果它是一个独立的部署,它应该通过更改回调 url 来实现。
请参考我的博客 [1] 并根据您的主机名更改 admin_publisher 和 admin_store SP 应用程序的回调 URL。
很抱歉给您带来不便,但我们的文档还在 WIP 中。 我们将尽快更新文档。
[1] https://ihara-cooray.blogspot.com/2019/11/how-to-change-devportal-to-different.html
@isharac
我更新了回调 URL 但不起作用
之后我在本地主机中运行 Nginx 和 ApiM 3.0,只有我启用了反向代理和更新回调 URL。 设置域的发布者门户已运行
但是当部署示例 API 并单击“在 devportal 中查看”或“登录”时,页面 URL 为localhost:9443
。
@amir-dh
需要在 deployment.toml 中配置 devportal url
为此,请启用以下配置
您可以通过删除 # 来启用。
@isharac
我设置了配置的这一行:
[apim.devportal]
url = " https://MyDomain/devportal "
并设置反向代理:
const REVERSE_PROXY = {
启用:真,
来源:'MyDomain',
};
但登录和注销页面 URL 是localhost
。 在出版商和开发门户上
@amir-dh
请附上上述页面的截图,包括网址。
还有 devportal SP(admin_admin_store) 的回调 url?
@isharac
我在登录页面 MyDomain 中替换为“ localhost:9443 ”并打开了
但是当我更新回调 URL admin_admin_store
并转到登录页面时,它会给出错误 invalid_callback
我和amir-dh有同样的问题
有没有办法手动编辑 api-manager.xml 来设置正确的 URL,避免服务器启动后被覆盖?
问候,
J.P
@amir-dh
谢谢,截图。
看起来您也在使用端口偏移量 2。
你能分享一下吗
和反向代理配置?
同时,我尝试通过更改主机名并在 Nginx 前面。
我遵循的步骤记录在博客 [1] 中。
如果这对您不起作用,请告诉我们。
@JUANPARBELAEZ
您能否检查同一博客 [1] 中的步骤并让我知道任何反馈?
[1] https://ihara-cooray.blogspot.com/2019/11/how-to-change-default-hostname-of-wso2.html
@isharac
你好,
我运行原始 APIM 并从这里一步一步设置配置,但它不起作用。
登录页面上的发布者和存储错误是500(此页面不起作用),输入用户名和密码并单击登录按钮后碳错误是403(禁止)。
我读了 wso2carbon.log,发布者和存储错误是连接被拒绝,对于 carbon 来说没有错误
@amir-dh
请共享以下文件以在删除任何敏感数据后进行分析。
@isharac
wso2.zip
这个给你。
@amir-dh ,
很抱歉这么晚才回你。
提供的配置看起来不错。
但是,由于最新版本中 [1] 中发现的问题,我们修改了反向代理配置。
能否请您在最新版本WSO2AM-3.1.0-M2 中重试。
从 APIM-3.1.0-M 2 开始,要配置反向代理,您需要进行以下配置更改。
更改 deployment.toml 中的主机名
[服务器]主机名 = "api.am.wso2.com"
反向代理配置
服务器 {
听 443 ssl;
server_name api.am.wso2.com;
proxy_set_header X-Forwarded-Port 443;
ssl_certificate /usr/local/etc/nginx/ssl/nginx.crt;
ssl_certificate_key /usr/local/etc/nginx/ssl/nginx.key;
地点 / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass https://api.am.wso2.com :9443;
}
}
在 /etc/hosts 添加主机映射
127.0.0.1 。
如果您不是第一次启动服务器,请通过登录管理控制台来更改回调 URL。
https://api.am.wso2.com :9443/carbon/
转到服务提供商并找到 admin_admin_publisher
发布者中的回调 URL
regexp=(https://api.am.wso2.com:9443/publisher/services/auth/callback/login|https://api.am.wso2.com:9443/publisher/services/auth/callback/logout )
@isharac
我下载了 APIM-3.1.0-M2,更改了 deployment.toml 文件中的hostname
并将 nginx 配置更改为:
服务器 {
听 443 ssl;
server_name myDomain ;
proxy_set_header X-Forwarded-Port 443;
ssl_certificate /usr/local/etc/nginx/ssl/nginx.crt;
ssl_certificate_key /usr/local/etc/nginx/ssl/nginx.key;
地点 / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass https:// myDomain :9443;
}
}
但它不起作用。
当调用publisher
它重定向到这里。 如您所见,它通过端口将我重定向到 MyDomain。 不是反向代理 URI,例如,它将我从https://mydomain.com/publisher
重定向到https://mydomain.com:9445/oauth2/.....
。 如果我手动删除后跟 mydomain 的端口,它将正常工作。
当我想登录时,这个问题对于devportal
也是一样的。
对于Management Console
登录后,它从登录页面重定向到此 url并给出错误 403(forbidden)
仅供参考:我检查了您发送给我的问题; 在features/apimgt/org.wso2.carbon.apimgt.publisher.feature/src/main/resources/publisher/site/public/theme/defaultTheme.js
:
reverseProxy: {
auto: true,
forwardedHeader: 'x-forwarded-for',
loopbackHost: 'localhost',
defaultHTTPSPort: 9443,
},
在问题 [1] 中可用,但在 [2] 中不可用
[1] (https://github.com/wso2/carbon-apimgt/pull/7842/files/88efcf71b4aa4b8bf5511db8fc91655ba7969aa8?utf8=%E2%9C%93&diff=split&w=1)
[2] (https://github.com/wso2/carbon-apimgt/pull/7858/files)
嗨@amir-dh
抱歉,您还需要在 deployment.toml 中添加代理端口
请在下面添加配置
[transport.https.properties]
代理端口 = 443
@isharac
我在部署文件中添加了代理端口
我打电话给https://mydomain.com/
它重定向到发布者门户
但是当我调用https://mydomain.com/publisher
它会重定向到https://**myIP**/publisher
并且我收到此消息This site can’t be reached
。 在devportal
和carbon
网址中,我遇到了同样的错误
@amir-dh
请找到我的评论。
''我调用https://mydomain.com/它重定向到发布者门户''
这是默认情况。
重定向到 IP 看起来有点奇怪。
能否分享一下从浏览器控制台下载的 nginx.conf 和 HAR 文件以供进一步分析?
Yiou可以参考下面找到chrome中的下载按钮。
配置文件
这个给你
@amir-dh
感谢分享配置。
在您的 nginx.conf proxyPass 中配置了 IP。
您能否将其更改为以下域并重新检查?
proxy_pass https://myDomain :9443;
谢谢。
嗨@amir-dh ,
我在给定的 HAR 中看不到任何重定向到 IP 地址。 请求失败的原因似乎是
invalid_callback
--
Registered callback does not match with the provided url.
所以问题很可能是, admin_apim_publisher
给出的回调 URL
它应该在正则表达式中有以下 URL
https://mydomain.com/publisher/services/auth/callback/login
@isharac @tmkasun
感谢你们对我的帮助。
用你的提示解决了我的问题。
我设置以下配置:
hostname
更改mydomain
server {
listen 443 ssl;
server_name myDomain;
proxy_set_header X-Forwarded-Port 443;
ssl_certificate /usr/local/etc/nginx/ssl/nginx.crt;
ssl_certificate_key /usr/local/etc/nginx/ssl/nginx.key;
location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass https://myDomain:9443;
}
}
在部署文件中添加代理端口:
[transport.https.properties]
代理端口 = 443
将部署文件中的devportal
URL 和gwdevportal
URL 从localhost更改为mydomain.com并删除端口
@amir-dh
很高兴您能够解决问题。 :)
@isharac
我确实按照所有配置
我看到了“ TypeError:无法从未定义中读取属性“forwardedHeader”......”
当我尝试在 $HOST/devportal/apis 中叹气时
该页面将被重定向到 $HOST/devportal/services/configs
你有什么建议吗 ?
请给我一个答复
环境
nginx 版本:nginx/1.10.3
WSO2 APIM 3.1.0 M3
TID:[-1234] [devportal] [2019-12-03 02:19:55,194] 错误 {org.jaggeryjs.jaggery.core.manager.WebAppManager} - org.mozilla.javascript.EcmaError:TypeError:无法读取属性“ forwardedHeader" 来自未定义 (/devportal/services/login/idp.jag#28) org.jaggeryjs.scriptengine.exceptions.ScriptException: org.mozilla.javascript.EcmaError: TypeError: 无法从未定义 (/devportal/服务/登录/idp.jag#28)
在 org.jaggeryjs.scriptengine.engine.RhinoEngine.execScript(RhinoEngine.java:587)
在 org.jaggeryjs.scriptengine.engine.RhinoEngine.exec(RhinoEngine.java:289)
在 org.jaggeryjs.jaggery.core.manager.WebAppManager.exec(WebAppManager.java:589)
在 org.jaggeryjs.jaggery.core.manager.WebAppManager.execute(WebAppManager.java:508)
在 org.jaggeryjs.jaggery.core.JaggeryServlet.doGet(JaggeryServlet.java:24)
在 javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
在 javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
在 org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:712)
在 org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:459)
在 org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:352)
在 org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)
在 org.jaggeryjs.jaggery.core.JaggeryFilter.doFilter(JaggeryFilter.java:76)
在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
在 org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
在 org.wso2.carbon.ui.filters.cache.ContentTypeBasedCachePreventionFilter.doFilter(ContentTypeBasedCachePreventionFilter.java:53)
在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
在 org.apache.catalina.filters.HttpHeaderSecurityFilter.doFilter(HttpHeaderSecurityFilter.java:126)
在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
在 org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
在 org.wso2.carbon.identity.context.rewrite.valve.TenantContextRewriteValve.invoke(TenantContextRewriteValve.java:80)
在 org.wso2.carbon.identity.authz.valve.AuthorizationValve.invoke(AuthorizationValve.java:100)
在 org.wso2.carbon.identity.auth.valve.AuthenticationValve.invoke(AuthenticationValve.java:74)
在 org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:99)
在 org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:49)
在 org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:62)
在 org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:146)
在 org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
在 org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:57)
在 org.wso2.carbon.tomcat.ext.valves.RequestCorrelationIdValve.invoke(RequestCorrelationIdValve.java:116)
在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
在 org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
在 org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
在 org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:853)
在 org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1587)
在 org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
在 org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
在 java.lang.Thread.run(Thread.java:748)
引起:org.mozilla.javascript.EcmaError:TypeError:无法从未定义中读取属性“forwardedHeader”(/devportal/services/login/idp.jag#28)
在 org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3687)
在 org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3665)
在 org.mozilla.javascript.ScriptRuntime.typeError(ScriptRuntime.java:3693)
在 org.mozilla.javascript.ScriptRuntime.typeError2(ScriptRuntime.java:3712)
在 org.mozilla.javascript.ScriptRuntime.undefReadError(ScriptRuntime.java:3725)
在 org.mozilla.javascript.ScriptRuntime.getObjectProp(ScriptRuntime.java:1483)
在 org.jaggeryjs.rhino.devportal.services.login.c0._c_script_0(/devportal/services/login/idp.jag:28)
在 org.jaggeryjs.rhino.devportal.services.login.c0.call(/devportal/services/login/idp.jag)
在 org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:394)
在 org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3091)
在 org.jaggeryjs.rhino.devportal.services.login.c0.call(/devportal/services/login/idp.jag)
在 org.jaggeryjs.rhino.devportal.services.login.c0.exec(/devportal/services/login/idp.jag)
在 org.jaggeryjs.scriptengine.engine.RhinoEngine.execScript(RhinoEngine.java:583)
……还有 50 个
嗨@loeb-ift
您使用的 APIM 版本是什么?
你能分享 devportal/site/public/theme/settings.js
嗨@isharac
如下
root@wso2am-313 :/tmp/20191203# vi /opt/wso2am-3.1.0-m3/repository/deployment/server/jaggeryapps/devportal/site/public/theme/settings.js
常量设置 = {
应用程序: {
上下文:'/ devportal',
反向代理:{
启用:真,
来源:' https://MYHOST ',
},
},
授予类型:{
授权代码:'代码',
隐式:'隐式',
refresh_token: '刷新令牌',
密码:'密码',
' iwa:ntlm ': 'IWA-NTLM',
client_credentials: '客户端凭据',
' urn:ietf : params:oauth :grant-type:saml2-bearer ': 'SAML2',
' urn:ietf : params:oauth :grant -type:jwt-bearer ': 'JWT',
kerberos: 'Kerberos',
},
};
太感谢了
@loeb-ift
你对这个文件做了什么改动吗?
应用程序 json 应如下所示。
app: {
context: '/devportal',
customUrl: {
enabled: false,
forwardedHeader: 'X-Forwarded-For',
},
origin: {
host: 'localhost',
},
},
默认配置文件请参考[1]。
[1] https://github.com/wso2/carbon-apimgt/blob/v6.5.399/features/apimgt/org.wso2.carbon.apimgt.store.feature/src/main/resources/devportal/site/public /主题/settings.js
参考 [https://ishara-cooray.blogspot.com/2019/11/how-to-change-default-hostname-of-wso2.html] 中的文档
我试图添加反向代理设置并编辑配置 /devportal/site/public/theme/settings.js
我看到我丢失了 ' forwardedHeader: 'X-Forwarded-For','
但它没有看到任何作品!
现在 setting.js 是:
`const 设置 = {
应用程序: {
上下文:'/ devportal',
反向代理:{
启用:真,
来源:'https://$MYHOST',
forwardedHeader: 'X-Forwarded-For',
},
},
};
grantTypes: {
authorization_code: 'Code',
implicit: 'Implicit',
refresh_token: 'Refresh Token',
password: 'Password',
'iwa:ntlm': 'IWA-NTLM',
client_credentials: 'Client Credentials',
'urn:ietf:params:oauth:grant-type:saml2-bearer': 'SAML2',
'urn:ietf:params:oauth:grant-type:jwt-bearer': 'JWT',
kerberos: 'Kerberos',
},
};
如果博客具有误导性,请道歉,但正如我在博客中记录的那样,它仅适用于 APIM 3.0.0
因为我们必须在 APIM 3.1.0-m2 之后更改反向代理配置。
我会用最新的配置更新博客。
请按照注释[1]中的步骤在APIM 3.1.0-m3中配置反向代理
[1] https://github.com/wso2/product-apim/issues/6808#issuecomment -559584220
@isharac
感谢您的留言
实际上,该博客提供了很多帮助
但我错过了重要的一点
安装总结
操作系统:Debian 4.9.189-3+deb9u2 (2019-11-11) x86_64 GNU/Linux
nginx 版本:nginx/1.10.3 与 WSO2 3.1.0 M3
安装步骤。
[ https://github.com/wso2/product-apim/issues/6808#issuecomment -559584220]
它现在有效
你好,
我对 nginx 前端(WSO2 APIM 3.0)有同样的问题
当我尝试打开发布者或开发门户时,我的控制台中出现以下错误
-错误:错误:未找到部分令牌,重定向到匿名视图且未找到用户。 令牌刷新失败。
/admin 和 /carbon 运行良好
nginx 版本:前端服务器中的 nginx/1.16.1
WSO2 - APIM 不是其他服务器(CentOS Linux 版本 7.7.1908)
通过 rpm 安装 WSO2 APIM 3.0(WSO2 站点中的鳍)
网络流量 9443,443 和 8243 是开放的和 Nginx Fronted 和 WSO2 APIM 3.0 Server
你能帮我吗,我没有任何解决办法:(
谢谢
山姆
嗨@SamWso2 ,
我认为您指的是这些日志消息,
这些是打印出来的一些信息日志以识别登录状态,您也会在正常设置中看到这些日志
你能解释一下你的问题吗? 或提供 HTTP 存档 (HAR) 文件来分析问题?
如果您遇到持续登录循环场景,您可以按照@isharac的博客在 APIM 3.0.0 中配置反向代理
https://ihara-cooray.blogspot.com/2019/11/how-to-change-devportal-to-different.html
嗨 tmkasun,
在内部我可以登录 /devportan 和 /publisher
在外部,我使用公共 URL(在 NGINX 中配置),我可以在 Carbon 和管理门户中访问
我也可以在 devportal URL 中访问,但我无法登录,它的循环......我什么也没得到
我的生产环境中有 WSO2 APIM 2.6 和 NGINcXin,它运行良好。
谢谢
我使用 Squid 代理(和前面的 Nginx 反向代理)上网,但我没有在 WSO2 配置中实现这个参数。
我应该如何配置代理以在 wSO2 APIM 3.0 上上网?
谢谢
希望这可以帮助。
https://apim.docs.wso2.com/en/latest/install-and-setup/deploying-wso2-api-manager/configuring-the-proxy-server-and-the-load-balancer/#step -2 -configure-the-load-balancerreverse-proxy-server
我已经把
但我有以下错误
TID:[-1234] [devportal] [2020-03-10 10:45:20,910] 错误 {org.jaggeryjs.jaggery.core.manager.WebAppManager} - org.mozilla.javascript.WrappedException:包装的 org.jaggeryjs.scriptengine .exceptions.ScriptException:java.net.ConnectException:连接被拒绝(连接被拒绝)(<
我在前端使用 nginx 服务器作为反向代理 = OK
但是我使用鱿鱼代理上网
我应该如何配置代理鱿鱼以在 wSO2 APIM 3.0 配置上上网? (没有 NGINX 反向代理,而是 squi 代理)
谢谢
嗨@isharac
我正在使用 wso2am 3.1.0 我想使用 nginx 路由 wso2。 我已经用主机名和 pory 端口配置了 wso2 deployment.toml 并配置了 nginx 但我仍然面临这个问题。你能帮我吗
Nginx 托管在一个 VM 中,而 wso2 可在其他 VM 中使用