Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用spring security读取CAS票证验证XML?_Spring_Spring Boot_Spring Security_Cas - Fatal编程技术网

如何使用spring security读取CAS票证验证XML?

如何使用spring security读取CAS票证验证XML?,spring,spring-boot,spring-security,cas,Spring,Spring Boot,Spring Security,Cas,我有一个Spring启动应用程序,并使用(版本3.6.2)使用进行身份验证。换句话说,我想把我的应用程序变成一个CAS客户端,我没有自己设置CAS服务器 我检查了对CAS服务器的调用列表: 第一次调用CAS服务器,但我没有看到第二次调用服务器进行票证验证(即调用https://cas-server-address/cas/serviceValidateURL),它将返回一个包含user和authtype属性的XML文档,我希望提取这些属性以存储在数据库中 我有两个问题: 为什么没有第二次调用C

我有一个Spring启动应用程序,并使用(版本3.6.2)使用进行身份验证。换句话说,我想把我的应用程序变成一个CAS客户端,我没有自己设置CAS服务器

我检查了对CAS服务器的调用列表:

第一次调用CAS服务器,但我没有看到第二次调用服务器进行票证验证(即调用
https://cas-server-address/cas/serviceValidate
URL),它将返回一个包含
user
authtype
属性的XML文档,我希望提取这些属性以存储在数据库中

我有两个问题:

  • 为什么没有第二次调用CAS服务器进行票证验证?它是隐藏的吗
  • 如何从XML文档中提取
    user
    authtype
    属性并将它们存储在数据库中
  • 为什么没有第二次调用CAS服务器进行票证验证

    有。第二个调用是从应用程序服务器到CAS服务器的反向通道调用。根据定义,这不是您在浏览器中看到的内容。此调用转到后台CAS服务器,以验证在第一段(即
    ST xyz
    )中接收到的服务票证。应该会自动为您执行此操作,您可以在日志中对此进行验证

    如果您没有看到这种情况发生,则说明您的配置设置不正确或过程中出现错误

    它是隐藏的吗

    隐藏在浏览器之外,因为这是反向通道调用。有关发生的情况和原因的更多详细信息,请研究

    如何从XML文档中提取user和authtype属性并将它们存储在数据库中

    通常提取用户id和其他属性。然后,可以通过http请求对象获取远程用户头下的用户id。如果您有权访问http会话,还可以从包含CAS负载的会话中获取最终断言:

    var assertion=(assertion)session.getAttribute(AbstractCasFilter.CONST\u CAS\u assertion);
    
    有关更实际的示例

    为什么没有第二次调用CAS服务器进行票证验证

    有。第二个调用是从应用程序服务器到CAS服务器的反向通道调用。根据定义,这不是您在浏览器中看到的内容。此调用转到后台CAS服务器,以验证在第一段(即
    ST xyz
    )中接收到的服务票证。应该会自动为您执行此操作,您可以在日志中对此进行验证

    如果您没有看到这种情况发生,则说明您的配置设置不正确或过程中出现错误

    它是隐藏的吗

    隐藏在浏览器之外,因为这是反向通道调用。有关发生的情况和原因的更多详细信息,请研究

    如何从XML文档中提取user和authtype属性并将它们存储在数据库中

    通常提取用户id和其他属性。然后,可以通过http请求对象获取远程用户头下的用户id。如果您有权访问http会话,还可以从包含CAS负载的会话中获取最终断言:

    var assertion=(assertion)session.getAttribute(AbstractCasFilter.CONST\u CAS\u assertion);
    
    有关更实际的示例