Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.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_Spring_Security_Integration_Cas_Delegation - Fatal编程技术网

Spring Security将身份验证委托给CAS

Spring Security将身份验证委托给CAS,spring,security,integration,cas,delegation,Spring,Security,Integration,Cas,Delegation,我一直在研究CAS和Spring Security之间的问题,但我没有找到这方面的确切情况。我的问题是关于设置SpringSecurity,使其用户基于CAS 目前,我们正在修改CAS以访问用户本身,但是,该应用程序由Spring Security保护。到目前为止,CAS-Spring安全性似乎授权我们创建自己的自定义用户服务来获取用户,但是如果用户来自CAS本身呢 有没有一种方法可以识别,当CAS发现凭据有效时,Spring Security也会同意它,而不采取任何行动?或者这不是它应该如何工

我一直在研究CAS和Spring Security之间的问题,但我没有找到这方面的确切情况。我的问题是关于设置SpringSecurity,使其用户基于CAS

目前,我们正在修改CAS以访问用户本身,但是,该应用程序由Spring Security保护。到目前为止,CAS-Spring安全性似乎授权我们创建自己的自定义用户服务来获取用户,但是如果用户来自CAS本身呢

有没有一种方法可以识别,当CAS发现凭据有效时,Spring Security也会同意它,而不采取任何行动?或者这不是它应该如何工作


您对解决此问题有何建议?

您没有提到您正在使用的Spring安全版本,因此我只需在3.1链中插入最新版本的链接。


CAS规范只需要令牌交换。跟踪经过身份验证的用户的业务是Spring Security的一部分。参考文件中的相关步骤为14和15。Spring Security定义了将AuthenticationProvider委托给UserDetailsService的流,以创建可在整个应用程序中引用的对象。您必须定义UserDetails服务并让它构造基本UserDetails对象,即使该对象仅从CAS身份验证主体提取用户名。

您使用的是CAS客户端吗?CasAuthenticationEntryPoint?您希望spring安全性针对cas进行身份验证吗?CasAuthenticationProvider具有authenticationUserDetailsService属性,您可以在其中使用authenticationUserDetailsService的实现基于cas用户名和属性Yes创建用户。目的是让Spring安全性针对CAS进行身份验证。据我所见,Spring Security似乎希望从自己的用户存储中获取信息,而不承认CAS已经允许用户进入。