小编Tom*_*uer的帖子

Python SSL X509:KEY_VALUES_MISMATCH

"""Python HTTPS server"""

from http.server import HTTPServer, SimpleHTTPRequestHandler
import ssl

# https://stackoverflow.com/a/40822838/2715716
HTTPD = HTTPServer(('localhost', 4443), SimpleHTTPRequestHandler)

# Ubuntu on Windows:
# - Generate key:
# `openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365`
# - Strip passphrase:
# `openssl rsa -in key.pem -out key-no-pass.pem`
HTTPD.socket = ssl.wrap_socket(HTTPD.socket,
                              keyfile='key-no-pass.pem', certfile='cert.pem', server_side=True)

HTTPD.serve_forever()
Run Code Online (Sandbox Code Playgroud)

上面给出了ssl.SSLError:[X509:KEY_VALUES_MISMATCH]键值不匹配(_ssl.c:2846).有没有办法知道不匹配的价值?

我试着用openssl verify -verbose -CAfile cert.pem它希望它告诉我哪些值不匹配,但我不知道使用它和我写的命令只是打开一些互动提示.

我对证书或Python一无所知,我只做过python -m SimpleHTTPServer.这是我试图获得一个自签名证书,以便Chrome可以让我不得不使用HTTPS来处理一些WebRTC localhost.

python ssl pyopenssl python-3.x

5
推荐指数
1
解决办法
4894
查看次数

HTML5视频静音属性未使用属​​性应用,但使用setAttribute应用

在使用HTML5视频时,我发现了一个奇怪的不一致.

比较这两个代码段并查看Chrome开发人员工具中的" 元素"标签

<body>
  <script>
    const video1 = document.createElement('video');
    video1.autoplay = true;
    video1.muted = true;
    document.body.appendChild(video1);

    const video2 = document.createElement('video');
    video2.setAttribute('autoplay', 'autoplay');
    video2.setAttribute('muted', 'muted');
    document.body.appendChild(video2);
  </script>
</body>
Run Code Online (Sandbox Code Playgroud)

对于第一个video,未muted设置使用JS对象属性的设置.对于第二个,使用setAttributeworking和DOM属性进行设置.有趣的是,情况并非如此autoplay.

这是为什么?是否存在另一个以这种方式表现的属性示例?这有规则吗?除了测试之外,如何判断哪个属性的属性在JS中的哪种方式?

html javascript video

5
推荐指数
1
解决办法
2236
查看次数

SVG tspan 变换倾斜

我正在寻找一种方法来倾斜 a tspantransform="skewX(-45)"但它似乎只对text整个父级起作用。问题是希望周围的tspans 不受倾斜的影响,只有中间的受到倾斜的影响。我不想使用多个texts 的原因是我希望为我完成流量计算,而不是我text手动定位 s (这样将来的字体更改不会影响文本流)。我还需要以下文本跨度相对于倾斜文本跨度的宽度(而不是原始文本跨度)进行飞行。

有没有办法只应用于transform一个,或者可以在保留文本流的同时tspan使用多个来完成此操作?text

svg

5
推荐指数
1
解决办法
1774
查看次数

创建一个每分钟运行一次的计划任务,无需用户使用 PowerShell 登录

我正在尝试使用 PowerShell 创建(和替换)计划的 Windows 任务。我找到了相关 PowerShell 命令的文档,据我所知,我一切正常:

$action = New-ScheduledTaskAction -Execute "node" -Argument "C:/scripts/task.js"
$now = Get-Date
$interval = New-TimeSpan -Seconds 60
$forever = [System.TimeSpan]::MaxValue
$trigger = New-ScheduledTaskTrigger -Once -At $now -RepetitionInterval $interval -RepetitionDuration $forever
$settings = New-ScheduledTaskSettingsSet
$task = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings
Register-ScheduledTask -TaskName 'TEST' -InputObject $task
Run Code Online (Sandbox Code Playgroud)

但是,运行这个,我得到一个神秘的错误:

Register-ScheduledTask :任务 XML 包含格式不正确或超出范围的值。

错误消息是无用的 - 我该如何调试它?

  • 什么 XML?在什么路径?
  • 哪个值?
  • 什么范围?

这个答案说现在使用,TimeSpan.MaxValue所以我用了 100 年:

$forever = $now.AddYears(100) - $now # [System.TimeSpan]::MaxValue doesn't work
Run Code Online (Sandbox Code Playgroud)

但是,错误仍然相同。

我用谷歌搜索并找到了一个建议来调查 …

windows powershell scheduled-tasks

5
推荐指数
1
解决办法
1660
查看次数

docker 登录 - 存储凭据时出错 - 写入权限错误

我正在运行docker login命令作为 Bamboo 构建作业的一部分。命令文本通过aws ecr get-login调用获得并在子shell 中执行。

Error saving credentials: error storing credentials - err: exit status 1, out: write permissions error当作为 Bamboo 构建的一部分运行时,此命令失败,但在作为构建代理的 Mac 终端中运行的完全相同的命令成功了。

使用终端:

  • aws ecr get-login成功并返回docker login命令文本
  • docker login -u ... -p ... -e none ... 成功并登录
  • KeyChain 中有 ECR URL 的记录
  • 有一个条目 ~/.docker/config.json

使用竹子:

  • aws ecr get-login成功并返回docker login命令文本
  • docker login -u ... -p ... -e none ... 因上述错误而失败
  • KeyChain 记录可用于所有应用程序没有区别'
  • chmod 777 ~/.docker/config.json 没什么区别 …

docker

4
推荐指数
4
解决办法
1万
查看次数

Windows Sandbox PowerShell 登录命令窗口不可见

我正在尝试通过 PowerShell 登录命令使用 Windows Sandbox。这是LogonCommand我的 WSB 文件的部分:

  <LogonCommand>
    <Command>C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe -executionpolicy unrestricted -file "C:\\Users\\WDAGUtilityAccount\\Desktop\\boot.ps1" -noexit</Command>
  </LogonCommand>
Run Code Online (Sandbox Code Playgroud)

Windows Sandbox 实例加载正常,表明 WSB 文件内容没有语法/验证问题,但未显示 PowerShell 窗口。添加-windowstyle normal没有效果。

我怀疑LogonCommand内容是在不可见的命令提示符中运行的,因此运行命令从中打开 PowerShell 以某种方式“继承”不可见的终端窗口。

在这种情况下是否可以强制 PowerShell 终端窗口显示出来?我想这样做,以便我可以看到由于 PowerShell 脚本未按预期执行并且我对任何输出/进度指示视而不见而收到的错误。

powershell windows-sandbox

4
推荐指数
1
解决办法
3044
查看次数

在 SignalR 中获取 OWIN 身份验证 cookie

我对 OWIN 或 ASP .NET 不是很熟悉,但我正在基于配置了个人用户帐户的 MVC 模板构建一个站点,并且我遇到了 OWIN cookie 中间件的问题。我正在使用ApplicationSignInManager项目模板中提供的默认值,并且我还使用 SignalR 集线器进行一些实时工作。现在,在某些情况下,我想使用 SignalR 集线器登录用户。这段代码:

Get<ApplicationSignInManager>().PasswordSignInAsync(…)
Run Code Online (Sandbox Code Playgroud)

在控制器操作中效果很好,因为该操作将导致带有Set-Cookie标头的 HTTP 响应,该标头将按.AspNet.ApplicationCookie预期设置,并且进一步的请求将包含它。由于我是从 SignalR 集线器而不是控制器返回一个值,我虽然只是获取 cookie 并将其设置在集线器的客户端方法中,以模拟控制器响应。

但是我似乎无法弄清楚如何找到 cookie 值。

我已经基本上浏览IOwinContext了 cookie中的所有内容,但无处可寻。我可以找到登录的ClaimsIdentity很好,而不是 cookie,想。我已经阅读了一些资料,我认为这是因为在我查找 cookie 时,实际设置 cookie 的中间件尚未执行。它可能根本不会执行,因为在集线器中,我什至不知道我是否在 OWIN 管道中。我只是这样做:

HttpContext.Current.GetOwinContext().Get<ApplicationSignInManager>().PasswordSignInAsync()
Run Code Online (Sandbox Code Playgroud)

我试图像这样添加我自己的中间件:

app.Use(async (context, next) => { await next; });
Run Code Online (Sandbox Code Playgroud)

但是这个中间件根本没有被击中,这让我觉得通过获取ApplicationSignInManager我正在创建的 SignalR IPrincipal,是的,但没有其他任何事情发生,即执行 cookie 中间件,它将设置Set-Cookie我所追求的 HTTP 响应标头。

有没有办法解决这个问题,让我的用户登录 SignalR,然后重新启动客户端上的连接,以便下一次OnConnected调用接收我手动设置的 cookie 并IPrincipal从中找出正确的方法?我可以让 OWIN 管道在集线器中运行吗?

signalr-hub owin asp.net-identity

3
推荐指数
1
解决办法
1300
查看次数

提取返回空响应,但“网络”选项卡显示数据

使用以下简单代码段:

fetch("https://www.youtube.com/feeds/videos.xml?channel_id=UCAL3JXZSzSm8AlZyD3nQdBA", { mode: "no-cors" })
  .then(r => {
    console.debug(r);
    r.text().then(t => console.debug(t)).catch(console.error);
  })
  .catch(console.error);
Run Code Online (Sandbox Code Playgroud)

我收到一个空响应(nullbody,empty urlstatus为零,okfalse),但是当我转到“网络”选项卡时,可以在其中的“响应”选项卡中看到数据。我希望fetch回应能给我同样的感觉。

是什么赋予了?我试过添加,credentials: "include"但是没有什么区别,也不应该,没有它就应该可以访问此资源。

javascript fetch-api

3
推荐指数
1
解决办法
1629
查看次数

TypeScript 2.8.3 Type必须具有一个返回迭代器的Symbol.iterator方法

我遇到一个错误,提示Type必须具有[Symbol.iterator]()返回迭代器的' '方法。。它希望在分界线上:

class Test {
    private async do() {
        const done = [...(await this.test())]; // Here's the error
    }

    private async *test(): AsyncIterableIterator<string> {
        return;
    }
}
Run Code Online (Sandbox Code Playgroud)

我在TypeScript GitHub存储库中发现了一些问题,但似乎没有任何帮助。他们都建议向添加新条目lib。我使用的es6目标,并增加了esnextdomes2018。这对错误的影响为零。

我会错过更多lib条目吗(我怀疑这些条目是包含所有内容的通用条目)还是我使用的代码无效?

typescript

3
推荐指数
5
解决办法
1万
查看次数

在 Service Worker 文件中使用 ESM(导入/导出)

我正在尝试使用服务工作线程文件,它也是 ESM 模块。

register方法有一个额外的参数,接受一个options对象,该对象具有一个type有效值似乎为classic和 的字段module,但是当我使用时:

navigator.serviceWorker.register('worker.js', { type: 'module' });
// `worker.mjs` doesn't work either
// The file exists in both cases!
Run Code Online (Sandbox Code Playgroud)

DOMException在 Chrome 中收到一条未指定的消息。

type我通过阅读规范找出了有效值,特别是:

https://html.spec.whatwg.org/multipage/workers.html#workertype

在我看来,我的代码是有效的。

作为健全性检查,我还尝试明确设置typeclassic,然后服务人员注册就可以顺利进行。如果我将其设置为无效值,我会得到一个TypeError告诉我的信息,所以浏览器并不是还没有意识到type: module. 它被视为一种特殊情况,它只是抛出一个DOMException没有消息的消息。

我是否type正确使用了该字段?是不是还为时过早,浏览器不支持?

javascript service-worker

3
推荐指数
1
解决办法
1771
查看次数