認証に SAML プラグインを使用しています。アプリはgrails4アプリです。
https://plugins.grails.org/plugin/jeffwils/spring-security-saml
しかし、私が思う質問は、厳密には SAML プラグインとは関係ありません。
これがプラグインの仕組みです。プラグインを設定して構成を追加したら、まず、Spring セキュリティ ロールで保護されたメソッドである index に移動します。これにより、次に示すように auth にリダイレクトされます。最終的に SAML がインストールされるため、以下の画像に示すように、https: //cas.byu.edu/cas/idp/profile/SAML2/POST/SSO に POST リクエストが送信されます。投稿本文は次のようになります
SAMLRequest: +PHNhbWwyOklzc3VlciB4bWxuczpzYW1sMj0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOmFzc2VydGlvbiI+dGVzdDwvc2FtbDI6SXNzdWVyPjwvc2FtbDJwOkF1dGhuzUmdVxDVxdW
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 を抽出するにはどうすればよいですか? この投稿リクエストはプラグインから行われるため、直接アクセスできないと思います。洞察に感謝します。