配置 saml-sample (SP) 以与 Okta (IdP) 配合使用

2023-12-07

Okta 是用于 SAML 登录的 IdP。我有 Okta 的超级管理员用户。

我尝试使用 Spring 的 saml-sample 项目作为我的 SP(服务提供者)。当我在 Okta 系统中配置它(spring-saml-sample)时,我需要在 SP 上提供一些数据,例如“回发 URL”、“收件人”和“受众限制”。

在嗅探 Okta 的文档后,我发现了这一点:

观众限制– 这是服务提供商的实体 ID。它将由 SP 提供并且必须完全匹配。请参阅 SP 文档以获取此信息。

接受者– 输入服务提供者的断言消费者服务 URL 。请参阅 SP 文档以获取此信息。 所以我发现这个网址应该是:http://srv101.watchdox.net/spring-security-saml2-sample/saml/SSO/alias/defaultAlias

回发网址– 这是 SAML SP 端点(即您的用户将登录的位置)

SAML 响应的目标– 这是 saml 断言的预期目的地。除非 SP 指定,否则这通常与回发 URL 相同。请参阅 SP 文档以获取此信息。

问题:

我的应用程序 (spring-saml-sample) 有一个“欢迎”页面,用户可以在其中选择他想要登录的 IdP。所以我选择“Okta”IdP,然后我被重定向到 Okta 进行登录(直到这里为止都是完美的),但是登录后,我并没有将我重定向回我的应用程序(到受保护的资源),而是留在 Okta系统并查看他们的框架。我确实在那里看到了我的应用程序。当我单击它时,我会进入第一页,选择 IdP。

我认为问题出在我的 URL 或 SAML 响应上...... 有人有想法吗?

在此粘贴请求和响应(如果可能有帮助)。

我在此处粘贴了 SAML 请求和响应,以防有帮助。请注意,响应中的状态代码是“成功”!

有什么问题吗?我缺少什么?

Request:

POST https://watchdox.okta.com/app/template_saml_2_0/k3gvyf0mGFVVCVQBYTTA/sso/saml HTTP/1.1
Host: watchdox.okta.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: https://srv101.watchdox.net/spring-security-saml2-sample/saml/login/alias/defaultAlias?idp=http%3A%2F%2Fwww.okta.com%2Fk3gvyf0mGFVVCVQBYTTA
Content-Type: application/x-www-form-urlencoded
Content-Length: 3906

HTTP/?.? 200 OK
Server: nginx/1.2.6
Date: Thu, 18 Apr 2013 08:49:39 GMT
Content-Type: text/html;charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
P3P: CP="HONK"
Set-Cookie: sid=""; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/
t=default; Path=/
X-Okta-backend: webapp09e.prod.saasure.com
Cache-Control: no-cache, public
Pragma: no-cache
Expires: 0
Content-Language: en-US
Content-Encoding: gzip

SAML 请求:

<saml2p:AuthnRequest xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
                     AssertionConsumerServiceURL="https://srv101.watchdox.net:443/spring-security-saml2-sample/saml/SSO/alias/defaultAlias"
                     Destination="https://watchdox.okta.com/app/template_saml_2_0/k3gvyf0mGFVVCVQBYTTA/sso/saml"
                     ForceAuthn="false"
                     ID="a32a5d9jfge33c9b46gdaddid8gd41b"
                     IsPassive="false"
                     IssueInstant="2013-04-18T08:49:38.141Z"
                     ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
                     Version="2.0"
                     >
    <saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">com.watchdox.ohad</saml2:Issuer>
    <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
        <ds:SignedInfo>
            <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
            <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
            <ds:Reference URI="#a32a5d9jfge33c9b46gdaddid8gd41b">
                <ds:Transforms>
                    <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
                    <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
                </ds:Transforms>
                <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
                <ds:DigestValue>blwZT1B5451jbzeB9m0ogyGQuFY=</ds:DigestValue>
            </ds:Reference>
        </ds:SignedInfo>
        <ds:SignatureValue>RZeXySsMfy+iBglUngrCHg2XoaA4WzAkLrB/zhjRfqFQS45avePlF8f19N+MHoFSirI08R08lXNJqdT/+0tKEujwsluCzFMnOCVPhtZIs7DblxqD+nR0XmF9+fKt91z/KQRtGLQtO/bsl3X3dmkUULGUWBxi8ga9jyTnkGwMFjE8J/Ba0P9eZjLV9YV/Piui/3B1XbhezVIIAvPNOpwQzK1kSA19bwlSejCjsf1Xe9kLXoCdf56ykjGDSdj2HpEVKQcjbu2nfPTFAXRTehx6h5qiKVl5R1DdDtFfq9EOXpZgy5pcu4bHqDhNAMwhZCu57fIIRR5IWuC6YUAXTDFXbg==</ds:SignatureValue>
        <ds:KeyInfo>
            <ds:X509Data>
                <ds:X509Certificate>MIIDUjCCAjqgAwIBAgIEUOLIQTANBgkqhkiG9w0BAQUFADBrMQswCQYDVQQGEwJGSTEQMA4GA1UE
CBMHVXVzaW1hYTERMA8GA1UEBxMISGVsc2lua2kxGDAWBgNVBAoTD1JNNSBTb2Z0d2FyZSBPeTEM
MAoGA1UECwwDUiZEMQ8wDQYDVQQDEwZhcG9sbG8wHhcNMTMwMTAxMTEyODAxWhcNMjIxMjMwMTEy
ODAxWjBrMQswCQYDVQQGEwJGSTEQMA4GA1UECBMHVXVzaW1hYTERMA8GA1UEBxMISGVsc2lua2kx
GDAWBgNVBAoTD1JNNSBTb2Z0d2FyZSBPeTEMMAoGA1UECwwDUiZEMQ8wDQYDVQQDEwZhcG9sbG8w
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCXqP0wqL2Ai1haeTj0alwsLafhrDtUt00E
5xc7kdD7PISRA270ZmpYMB4W24Uk2QkuwaBp6dI/yRdUvPfOT45YZrqIxMe2451PAQWtEKWF5Z13
F0J4/lB71TtrzyH94RnqSHXFfvRN8EY/rzuEzrpZrHdtNs9LRyLqcRTXMMO4z7QghBuxh3K5gu7K
qxpHx6No83WNZj4B3gvWLRWv05nbXh/F9YMeQClTX1iBNAhLQxWhwXMKB4u1iPQ/KSaal3R26pON
UUmu1qVtU1quQozSTPD8HvsDqGG19v2+/N3uf5dRYtvEPfwXN3wIY+/R93vBA6lnl5nTctZIRsyg
0Gv5AgMBAAEwDQYJKoZIhvcNAQEFBQADggEBAFQwAAYUjso1VwjDc2kypK/RRcB8bMAUUIG0hLGL
82IvnKouGixGqAcULwQKIvTs6uGmlgbSG6Gn5ROb2mlBztXqQ49zRvi5qWNRttir6eyqwRFGOM6A
8rxj3Jhxi2Vb/MJn7XzeVHHLzA1sV5hwl/2PLnaL2h9WyG9QwBbwtmkMEqUt/dgixKb1Rvby/tBu
RogWgPONNSACiW+Z5o8UdAOqNMZQozD/i1gOjBXoF0F5OksjQN7xoQZLj9xXefxCFQ69FPcFDeEW
bHwSoBy5hLPNALaEUoa5zPDwlixwRjFQTc5XXaRpgIjy/2gsL8+Y5QRhyXnLqgO67BlLYW/GuHE=</ds:X509Certificate>
            </ds:X509Data>
        </ds:KeyInfo>
    </ds:Signature>
</saml2p:AuthnRequest>

奥克塔回复:

POST http://srv101.watchdox.net/spring-security-saml2-sample/ HTTP/1.1
Host: srv101.watchdox.net
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 7863

HTTP/?.? 302 Found
Date: Thu, 18 Apr 2013 08:51:57 GMT
Server: Apache
Location: https://srv101.watchdox.net/spring-security-saml2-sample/
Content-Length: 241
Keep-Alive: timeout=30, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=iso-8859-1

SAML 响应:

<saml2p:Response xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
                 Destination="http://srv101.watchdox.net/spring-security-saml2-sample/"
                 ID="id141234960903909491594058959"
                 InResponseTo="a32a5d9jfge33c9b46gdaddid8gd41b"
                 IssueInstant="2013-04-18T08:51:49.819Z"
                 Version="2.0"
                 >
    <saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
                  Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity"
                  >http://www.okta.com/k3gvyf0mGFVVCVQBYTTA</saml2:Issuer>
    <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
        <ds:SignedInfo>
            <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
            <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
            <ds:Reference URI="#id141234960903909491594058959">
                <ds:Transforms>
                    <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
                    <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
                </ds:Transforms>
                <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
                <ds:DigestValue>nCrBE9jowt9QAOk5ipw1SFnb248=</ds:DigestValue>
            </ds:Reference>
        </ds:SignedInfo>
        <ds:SignatureValue>lwSHBmy4Hqt3XjbnPni6PePFFCn9hUJb7K4jh3xAyUum+y59TUYftphi00lFhnFZXsV5Tj75zLru3JX1jt7bdT73wsYS6ccNcyOvZpJvNiqbBeUmydK45DBrzIVxDA9CWS94+PTH4rrWT5+OEWURBxwhv9BiKiFrLb60YIp6Q3o=</ds:SignatureValue>
        <ds:KeyInfo>
            <ds:X509Data>
                <ds:X509Certificate>MIICmzCCAgSgAwIBAgIGAT1+4eJ9MA0GCSqGSIb3DQEBBQUAMIGQMQswCQYDVQQGEwJVUzETMBEG
A1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzENMAsGA1UECgwET2t0YTEU
MBIGA1UECwwLU1NPUHJvdmlkZXIxETAPBgNVBAMMCHdhdGNoZG94MRwwGgYJKoZIhvcNAQkBFg1p
bmZvQG9rdGEuY29tMB4XDTEzMDMxODE5MDE0NVoXDTQzMDMxODE5MDI0NVowgZAxCzAJBgNVBAYT
AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1TYW4gRnJhbmNpc2NvMQ0wCwYDVQQK
DARPa3RhMRQwEgYDVQQLDAtTU09Qcm92aWRlcjERMA8GA1UEAwwId2F0Y2hkb3gxHDAaBgkqhkiG
9w0BCQEWDWluZm9Ab2t0YS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAL/raSnE0EXQ
mPgkSwyv8HIDPpmvU6prdySiWJSB3YztIC29VuneZbT0dFAOjAy6e/3NN7HjvBQU83YjhgBA43+U
f/7kwC2V8e5qi92J/pTrAWPB/UmTbCEVoCkR4BxSXr4bJ3dhk6eIPDGgOiuWjNCMTXoYX+aS1tsA
JDx0bXf5AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAfiBOI+/mpP52Qsg6Ea1jVN/mGm4snvKl6Nlh
5sYGhGw5zXBVDU4pI9ulm/8QZsCAlYZXltZ+eif7CRzy2VZvDVMGH3g69AD2xHveYr8UNYSjnLyB
ZPpVJVOysH7UgtBqNcHm0l00g4uUV2d52WcDiz85q/KjTBB9OjRdGVhkcow=</ds:X509Certificate>
            </ds:X509Data>
        </ds:KeyInfo>
    </ds:Signature>
    <saml2p:Status xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol">
        <saml2p:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success" />
    </saml2p:Status>
    <saml2:Assertion xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
                     ID="id14123496090473949894445897"
                     IssueInstant="2013-04-18T08:51:49.819Z"
                     Version="2.0"
                     >
        <saml2:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity"
                      xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
                      >http://www.okta.com/k3gvyf0mGFVVCVQBYTTA</saml2:Issuer>
        <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
            <ds:SignedInfo>
                <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
                <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
                <ds:Reference URI="#id14123496090473949894445897">
                    <ds:Transforms>
                        <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
                        <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
                    </ds:Transforms>
                    <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
                    <ds:DigestValue>D/wZzyBDL0RXwrf7d44mvuysYz0=</ds:DigestValue>
                </ds:Reference>
            </ds:SignedInfo>
            <ds:SignatureValue>DCrm/mkLiVsD8dAc4puY/L3GR1bxtDBn6+sTifLgxDGokFbS4PShjA3Ak6mTW1dM48TwXi1oB9Pz++iOP4w6ZVeBj9bWIPJaCATjWn26xBlt3GHaPjiOpUdvG5YwwqCMUlQ1+M0RhJDlkChfZbjPIKXibcP8TBIsj2sekr5sQSI=</ds:SignatureValue>
            <ds:KeyInfo>
                <ds:X509Data>
                    <ds:X509Certificate>MIICmzCCAgSgAwIBAgIGAT1+4eJ9MA0GCSqGSIb3DQEBBQUAMIGQMQswCQYDVQQGEwJVUzETMBEG
A1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzENMAsGA1UECgwET2t0YTEU
MBIGA1UECwwLU1NPUHJvdmlkZXIxETAPBgNVBAMMCHdhdGNoZG94MRwwGgYJKoZIhvcNAQkBFg1p
bmZvQG9rdGEuY29tMB4XDTEzMDMxODE5MDE0NVoXDTQzMDMxODE5MDI0NVowgZAxCzAJBgNVBAYT
AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1TYW4gRnJhbmNpc2NvMQ0wCwYDVQQK
DARPa3RhMRQwEgYDVQQLDAtTU09Qcm92aWRlcjERMA8GA1UEAwwId2F0Y2hkb3gxHDAaBgkqhkiG
9w0BCQEWDWluZm9Ab2t0YS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAL/raSnE0EXQ
mPgkSwyv8HIDPpmvU6prdySiWJSB3YztIC29VuneZbT0dFAOjAy6e/3NN7HjvBQU83YjhgBA43+U
f/7kwC2V8e5qi92J/pTrAWPB/UmTbCEVoCkR4BxSXr4bJ3dhk6eIPDGgOiuWjNCMTXoYX+aS1tsA
JDx0bXf5AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAfiBOI+/mpP52Qsg6Ea1jVN/mGm4snvKl6Nlh
5sYGhGw5zXBVDU4pI9ulm/8QZsCAlYZXltZ+eif7CRzy2VZvDVMGH3g69AD2xHveYr8UNYSjnLyB
ZPpVJVOysH7UgtBqNcHm0l00g4uUV2d52WcDiz85q/KjTBB9OjRdGVhkcow=</ds:X509Certificate>
                </ds:X509Data>
            </ds:KeyInfo>
        </ds:Signature>
        <saml2:Subject xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">
            <saml2:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified">[email protected]</saml2:NameID>
            <saml2:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
                <saml2:SubjectConfirmationData InResponseTo="a32a5d9jfge33c9b46gdaddid8gd41b"
                                               NotOnOrAfter="2013-04-18T08:56:49.819Z"
                                               Recipient="http://srv101.watchdox.net/spring-security-saml2-sample/saml/SSO/alias/defaultAlias"
                                               />
            </saml2:SubjectConfirmation>
        </saml2:Subject>
        <saml2:Conditions NotBefore="2013-04-18T08:46:49.819Z"
                          NotOnOrAfter="2013-04-18T08:56:49.819Z"
                          xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
                          >
            <saml2:AudienceRestriction>
                <saml2:Audience>com.watchdox.ohad</saml2:Audience>
            </saml2:AudienceRestriction>
        </saml2:Conditions>
        <saml2:AuthnStatement AuthnInstant="2013-04-18T08:51:49.819Z"
                              SessionIndex="a32a5d9jfge33c9b46gdaddid8gd41b"
                              xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
                              >
            <saml2:AuthnContext>
                <saml2:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</saml2:AuthnContextClassRef>
            </saml2:AuthnContext>
        </saml2:AuthnStatement>
    </saml2:Assertion>
</saml2p:Response>

感谢您的任何答复!


如果它可能对将来的某人有帮助 - 我现在就可以使用了!

我将所有 3 个 URL 设置为同一个(正如您一周前所建议的那样):https://srv101.watchdox.net:443/spring-security-saml2-sample/saml/SSO/alias/defaultAlias

那么有什么区别,为什么它现在起作用了?因为到目前为止我输入的 URL 是 http 而不是 https(并且没有 443):http://srv101.watchdox.net/spring-security-saml2-sample/saml/SSO/alias/defaultAlias

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

配置 saml-sample (SP) 以与 Okta (IdP) 配合使用 的相关文章

随机推荐

  • Web API:使用 MultipartMemoryStreamProvider 时如何访问多部分表单值?

    我以前用过MultipartFormDataStreamProvider处理多部分请求 由于我希望上传的文件存储在内存中 而不是磁盘文件中 因此我更改了代码以使用MultipartMemoryStreamProvider 文件加载似乎工作正
  • Laravel 4 中的模拟输入外观

    我正在使用这是一个表单服务 files Input file my file 我正在尝试测试它 但我似乎无法正确模拟输入 文档说不要模拟请求外观 没有提及输入外观 尽管它们都指向 IOC 容器中的同一个类 我尝试了几种方法 但都不起作用 有
  • 如何在 WooCommerce 中查找运输类别 ID?

    Using 隐藏 woocommerce 中特定运输类别的运输方式答案代码 我试图根据运输类别隐藏运输选项 大件物品和小件物品在我们的网站上有自己的运输类别 我们只想为小件物品提供快递运输 add filter woocommerce pa
  • 使用 histogram2d python 查找平均 bin 值[重复]

    这个问题在这里已经有答案了 如何在 python 中计算带有 2D 直方图的 bin 的平均值 我有 x 轴和 y 轴的温度范围 并且我正在尝试使用相应温度的箱来绘制闪电的概率 我正在从 csv 文件中读取数据 我的代码如下 filenam
  • 设置用户输入的时间限制(扫描仪)Java

    所以我尝试使用 Scanner 类读取用户输入 有没有一种简单的方法可以让它在 10 秒后移动到下一个代码块 谢谢 您可以使用 Timer 和 TimerTask TimerTask 将允许您在一定时间后运行任务 在这种情况下您可以使用此任
  • Spring Cloud Stream:spring.cloud.stream.default.consumer.concurrency属性的确切含义

    我想知道使用 spring cloud stream default consumer concurrency 属性时 并发 的确切含义 文档 https docs spring io spring cloud stream docs Ch
  • 如何在 QTextEdit 实例(PySide/PyQt)中垂直居中单行?

    我有一个继承自的行编辑器QTextEdit 我用它来编辑显示富文本的视图项目 第二个参数为QTextEdit setAlignment是 QtAlignment 并且the docs say 有效的对齐方式是 Qt AlignLeft Qt
  • 如何在javascript上用回车键模拟tab键

  • RealityKit – 在检测到的平面上可视化网格

    我想在检测到的平面上绘制网格点 如图所示ARCore视频链接我不知道如何实现它 你能帮我实现这个目标吗 提前致谢 经典网格可视化ARKit RealityKit 在这篇文章中 我想向您展示如何使用 ARKit RealityKit 框架启用
  • Flutter 项目无法在 Mac M1 上构建

    我最近买了一台新的 MacbookM1芯片 并在 Flutter 和 Firebase 的构建过程中面临着巨大的问题 我将列出 Flutter 错误日志和 Xcode 错误日志 注意 我正在 Flutter 通道上构建Master 颤动错误
  • SQL - 聚合函数 - GROUP BY 子句

    我有以下查询 select vkbr vkID vkbr bid vkbr Date vkbr agID FROM camp c NOLOCK JOIN ag NOLOCK ON ag campID c id JOIN vkbr WITH
  • 异步/等待死锁

    假设我正在编写一个自定义 MVC 过滤器 它在方法重写中执行一些异步调用 如下所示 public class MyActionFilter System Web Mvc ActionFilterAttribute public overri
  • 使用 Ant 在 xml 文档中插入 XML 元素

    我想在 xml 文档中插入一个 xml 元素 输入 XML
  • Seaborn 支持哪些估算器

    Seaborn 允许用户在其各种图中输入 估计器 变量 例如 https seaborn pydata org generated seaborn catplot html 我知道估计器应该是 向量 到 标量 的函数 即 平均值 将向量转换
  • 由于某种原因状态栏字体为粗体

    我的设备中的时钟 载体 电池部分正常 如第一张图片所示 当我打开应用程序时 将应用程序加载到内存中后 它开始动画并使导航栏变为粗体和更大的字体 我什至不确定这是好事还是坏事 但我想知道这是怎么发生的 以下是我如何设置 rootVC 如果它与
  • 如何递归搜索具有多个通配符的目录?

    使用 C NET 如何在给定目录搜索掩码的情况下搜索文件系统 如下所示 server Scanner images Images 例如 我需要首先找到所有顶级目录 server Scanner images Job1Images serve
  • 存储指向任何成员函数的函数指针

    我的活动经理 对于事件管理器 我需要在向量中存储许多指向函数的指针 以便在触发事件时调用它们 我将在本问题末尾提供 EventFunction 辅助类的源代码 an event is defined by a string name and
  • 如何终止/中断/中止Python console/sys.stdin readline()?

    在线程中 我有一个循环从用户控制台读取输入 主线程正忙于 Tkinter mainloop 我如何终止这个程序 while True ln sys stdin readline try ln ln 1 Remove LF from line
  • 无法通过 SendGrid 发送电子邮件

    我正在按照以下示例SendGrid 的网站作为凭据 我将他们在 Azure 门户中提供的内容粘贴到其中 尽管如此 我还是收到此错误消息 Message 发送邮件失败 InnerException 无法连接到远程服务器 我不清楚在这里做什么
  • 配置 saml-sample (SP) 以与 Okta (IdP) 配合使用

    Okta 是用于 SAML 登录的 IdP 我有 Okta 的超级管理员用户 我尝试使用 Spring 的 saml sample 项目作为我的 SP 服务提供者 当我在 Okta 系统中配置它 spring saml sample 时 我