- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
编辑:我一直在解决这个问题并回顾我的所有步骤。如果这个问题令人困惑,我很乐意减少这个问题的大小并获得更多确切的细节。目前,我正处于 Keycloak 似乎只打算将我重定向到 https://的地步,据我所知,这应该是 Wildfly 服务器配置问题。
编辑:我减少了我的问题,但这引起了困惑,所以我将问题回滚到原来的样子,不过最相关的部分在底部,我会在这里注明
我正在绞尽脑汁想找出可能导致此问题的原因。
我在 Android studio 的模拟器上收到以下错误消息:
我正在使用身份管理系统 Keycloak - 我稍后会回过头来。
我已尝试将我的 CSP 更改为非常宽松:
<meta http-equiv="Content-Security-Policy" content="default-src *; script-src 'self' 'unsafe-eval' 'unsafe-inline'; style-src 'self' 'unsafe-eval' 'unsafe-inline'; media-src *; img-src 'self' * data:"
/>
我已经安装了 inappbrowser,我已经在我的 config.xml 中非常自由地设置了我的 Intent 和允许导航:
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<allow-intent href="gap://*" />
<allow-intent href="APPNAMEHERE://*/*" />
<allow-intent href="fb://*/*" />
<allow-intent href="http://stage.APPNAMEHERE.com://*/*" />
<allow-intent href="https://stage.APPNAMEHERE.com://*/*" />
<allow-navigation href="https://localhost/*"/>
<allow-navigation href="http://localhost/*"/>
<preference name="Hostname" value="localhost" />
<preference name="Scheme" value="https" />
<preference name="MixedContentMode" value="0" />
<access origin="*" />
<allow-navigation href="*" />
<allow-navigation href="localhost://*/*" />
<allow-navigation href="APPNAME://*/*" />
<allow-navigation href="fb://*/*" />
<allow-intent href="*" />
<allow-navigation href="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="*" />
基本上我已经尝试让这个应用程序尽可能宽松,但仍然没有成功进行身份验证。
但还有更奇怪的事情。
我有另一个完全不相关的应用程序,但它也使用相同的身份管理系统。我很高兴地决定,因为我迫不及待地想尝试连接这里的该服务,而且它运行完美 - 没问题。
我尝试从另一个 Keycloak(一堆配置设置)导出客户端并使用它们进行微小的更改,没有骰子。还是一样的错误。
在这一点上,我简直快要崩溃了,我一直在不断地尝试不同的事情,并点击“登录”几个小时,结果完全相同。
什么可能会阻止我登录?
请注意,有一个 iOS 应用程序可以在相同的设置上完美运行,所以它不是设置。
我正在通过 OIDC 进行连接,如果这对任何人有帮助的话。
很抱歉我无法提供更多信息,我希望我能找到一些东西,任何可以掌握的东西,但我完全迷失在这里,似乎无法找到 localhost,无论我如何试试。
Android 控制台(我在 Chrome 检查器中没有看到什么特别的东西):
2019-08-31 10:56:42.002 12062-12191/com.companyname.appname D/InAppBrowser: target = _blank
2019-08-31 10:56:42.003 12062-12062/com.companyname.appname D/InAppBrowser: in blank
2019-08-31 10:56:42.054 12062-12164/com.companyname.appname E/eglCodecCommon: glUtilsParamSize: unknow param 0x000088ef
2019-08-31 10:56:42.054 12062-12164/com.companyname.appname E/eglCodecCommon: glUtilsParamSize: unknow param 0x000088ef
2019-08-31 10:56:42.168 12062-12170/com.companyname.appname D/EGL_emulation: eglMakeCurrent: 0xf0677ba0: ver 3 0 (tinfo 0xd6778770)
2019-08-31 10:56:42.325 12062-12170/com.companyname.appname D/EGL_emulation: eglMakeCurrent: 0xf0677ba0: ver 3 0 (tinfo 0xd6778770)
2019-08-31 10:56:42.501 12062-12170/com.companyname.appname D/EGL_emulation: eglMakeCurrent: 0xf0677ba0: ver 3 0 (tinfo 0xd6778770)
请注意,我已将公司名称替换为“companyname”,将应用程序名称替换为“appname”
编辑:
在我的前端尝试一个非常基本的 keycloak 实现(这里的玩具示例:https://github.com/keycloak/keycloak/blob/master/examples/cordova/www/index.html)时,我也注意到了这个错误:
keycloak.js:1000 Uncaught (in promise) undefined
setError @ keycloak.js:1000
(anonymous) @ keycloak.js:1261
Channel.fire @ cordova.js:840
_eventHandler @ inappbrowser.js:53
cb @ inappbrowser.js:118
callbackFromNative @ cordova.js:290
(anonymous) @ VM68:1
keycloak.js 中的相关代码与创建 native promise 有关:
function createNativePromise() {
// Need to create a native Promise which also preserves the
// interface of the custom promise type previously used by the API
var p = {
setSuccess: function(result) {
p.success = true;
p.resolve(result);
},
setError: function(result) {
p.success = false;
p.reject(result);
}
};
会不会和inappbrowser有关?
问题的实际相关部分
编辑 2:深入挖掘...
这里会抛出错误。
所以我猜这是因为我的重定向 url 不知何故是 https://localhost而不是 http://localhost ,因为这就是我的重定向 URI。
ref.addEventListener('loaderror', function(event) {
if (!completed) {
if (event.url.indexOf('http://localhost') == 0) {
var callback = parseCallback(event.url);
processCallback(callback, promise);
closeBrowser();
completed = true;
} else {
promise.setError();
closeBrowser();
}
}
});
https://localhost/#state=3bc5b8e8-ee17-4c78-861c-6fa62f5e353b&session_state=43d5518d-c278-4245-b181-899783fd2c6b&code=8e50a9c0-d1a6-4ecd-8e91-e85d92350900.43d5518d-c278-4245-b181-899783fd2c6b.863570ca-9c62-41a5-97bb-33880fe6c62d
即使尝试:
keycloak.init({ onLoad: "check-sso", redirectUri: "http://localhost" })
我仍然得到上面 https://的重定向 uri,我强烈认为这是导致我的错误的原因。
目前我strong 的猜测是,这可能与 Keycloak(使用 Wildfly)配置设置有关。
这是我在 Wildfly 中的服务器设置:
<server name="default-server">
<http-listener name="default" socket-binding="http" redirect-socket="http" proxy-address-forwarding="true" enable-http2="true"/>
<https-listener name="https" socket-binding="https" security-realm="ApplicationRealm" enable-http2="true"/>
<host name="default-host" alias="localhost">
<location name="/" handler="welcome-content"/>
<http-invoker security-realm="ApplicationRealm"/>
</host>
</server>
最佳答案
我不明白为什么您认为这可能是由于 wildfly 配置造成的...
请检查并提供更多信息:
Keycloak 收到带有有效重定向 uri 的请求,然后如果您是有效用户并且收到的重定向 uri 与您的客户端配置匹配...您的应用将被重定向到您请求的 redirect_uri。
编辑 1:关于你的 wildfly standalone.xml:正如我之前在评论中所说,您的 http-listener 属性 reditect-socket=“http” 是一个错误。如果要启用到 https 的重定向,请将“http”替换为“https”。否则将其删除。
仅当您的 key 斗篷位于反向代理(使用 x-forwarded-* header )之后时,才必须使用属性“proxy-address-forwarding”。
我使用 Keycloak v6.0.1 进行了测试,它可以正常工作。它重定向到' http://localhost '.
需要注意的几点:
我使用示例项目进行测试所遵循的步骤:
mkdir platforms plugins
cordova plugin add cordova-plugin-inappbrowser
cordova plugin add cordova-plugin-whitelist
cordova platform add android
cordova build android
cordova run android
PS:如果你有一些公共(public)测试实例来检查它或者
关于java - 网页在 Cordova Android 应用程序中不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57734603/
我需要将文本放在 中在一个 Div 中,在另一个 Div 中,在另一个 Div 中。所以这是它的样子: #document Change PIN
奇怪的事情发生了。 我有一个基本的 html 代码。 html,头部, body 。(因为我收到了一些反对票,这里是完整的代码) 这是我的CSS: html { backgroun
我正在尝试将 Assets 中的一组图像加载到 UICollectionview 中存在的 ImageView 中,但每当我运行应用程序时它都会显示错误。而且也没有显示图像。 我在ViewDidLoa
我需要根据带参数的 perl 脚本的输出更改一些环境变量。在 tcsh 中,我可以使用别名命令来评估 perl 脚本的输出。 tcsh: alias setsdk 'eval `/localhome/
我使用 Windows 身份验证创建了一个新的 Blazor(服务器端)应用程序,并使用 IIS Express 运行它。它将显示一条消息“Hello Domain\User!”来自右上方的以下 Ra
这是我的方法 void login(Event event);我想知道 Kotlin 中应该如何 最佳答案 在 Kotlin 中通配符运算符是 * 。它指示编译器它是未知的,但一旦知道,就不会有其他类
看下面的代码 for story in book if story.title.length < 140 - var story
我正在尝试用 C 语言学习字符串处理。我写了一个程序,它存储了一些音乐轨道,并帮助用户检查他/她想到的歌曲是否存在于存储的轨道中。这是通过要求用户输入一串字符来完成的。然后程序使用 strstr()
我正在学习 sscanf 并遇到如下格式字符串: sscanf("%[^:]:%[^*=]%*[*=]%n",a,b,&c); 我理解 %[^:] 部分意味着扫描直到遇到 ':' 并将其分配给 a。:
def char_check(x,y): if (str(x) in y or x.find(y) > -1) or (str(y) in x or y.find(x) > -1):
我有一种情况,我想将文本文件中的现有行包含到一个新 block 中。 line 1 line 2 line in block line 3 line 4 应该变成 line 1 line 2 line
我有一个新项目,我正在尝试设置 Django 调试工具栏。首先,我尝试了快速设置,它只涉及将 'debug_toolbar' 添加到我的已安装应用程序列表中。有了这个,当我转到我的根 URL 时,调试
在 Matlab 中,如果我有一个函数 f,例如签名是 f(a,b,c),我可以创建一个只有一个变量 b 的函数,它将使用固定的 a=a1 和 c=c1 调用 f: g = @(b) f(a1, b,
我不明白为什么 ForEach 中的元素之间有多余的垂直间距在 VStack 里面在 ScrollView 里面使用 GeometryReader 时渲染自定义水平分隔线。 Scrol
我想知道,是否有关于何时使用 session 和 cookie 的指南或最佳实践? 什么应该和什么不应该存储在其中?谢谢! 最佳答案 这些文档很好地了解了 session cookie 的安全问题以及
我在 scipy/numpy 中有一个 Nx3 矩阵,我想用它制作一个 3 维条形图,其中 X 轴和 Y 轴由矩阵的第一列和第二列的值、高度确定每个条形的 是矩阵中的第三列,条形的数量由 N 确定。
假设我用两种不同的方式初始化信号量 sem_init(&randomsem,0,1) sem_init(&randomsem,0,0) 现在, sem_wait(&randomsem) 在这两种情况下
我怀疑该值如何存储在“WORD”中,因为 PStr 包含实际输出。? 既然Pstr中存储的是小写到大写的字母,那么在printf中如何将其给出为“WORD”。有人可以吗?解释一下? #include
我有一个 3x3 数组: var my_array = [[0,1,2], [3,4,5], [6,7,8]]; 并想获得它的第一个 2
我意识到您可以使用如下方式轻松检查焦点: var hasFocus = true; $(window).blur(function(){ hasFocus = false; }); $(win
我是一名优秀的程序员,十分优秀!