1

我正在使用 SAML 插件进行身份验证。该应用程序是grails 4 应用程序。

https://plugins.grails.org/plugin/jeffwils/spring-security-saml

但我认为这个问题与 SAML 插件并不严格相关。

这是插件的工作原理。设置好插件并添加配置后,我们首先进入 index ,这是 spring 安全角色保护方法。这将反过来重定向到身份验证,如下所示。因为最终安装了 SAML,所以将 POST 请求发送到https://cas.byu.edu/cas/idp/profile/SAML2/POST/SSO,如下图所示。帖子正文看起来像

SAML 请求:+PHNhbWwyOklzc3VlciB4bWxuczpzYW1sMj0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOmFzc2VydGlvbiI+dGVzdDwvc2FtbDI6SXNzdWVyPjwvc2FtbDJwOkF1dGhuUMVxdWzVyPjwvc2FtbDJwOkF1dGhuUMVxdWzV

在此处输入图像描述

SAMLRequest 值是 base 64 编码的。所以解码后它看起来像

<?xml version="1.0" encoding="UTF-8"?><saml2p:AuthnRequest xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol" AssertionConsumerServiceURL="http://localhost:8080/secure/end" Destination="https://cas.byu.edu/cas/idp/profile/SAML2/POST/SSO" ForceAuthn="false" ID="a1hb9ggi9f2hf5ie2h9j2ff8650geh5" IsPassive="false" IssueInstant="2021-10-10T07:16:36.108Z" 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">test</saml2:Issuer></saml2p:AuthnRequest>

从这个请求中,我想提取 ID="a1hb9ggi9f2hf5ie2h9j2ff8650geh5" 值。我如何拦截此发布请求并从请求 xml 值中提取 ID?我认为这个帖子请求是由插件发出的,因此不能直接访问。我很欣赏任何见解。

4

0 回答 0