无法使用 CAS 和 Spring 安全性登录到应用程序

Posted

技术标签:

【中文标题】无法使用 CAS 和 Spring 安全性登录到应用程序【英文标题】:Unable to login to Application using CAS and Spring security 【发布时间】:2015-01-30 14:24:37 【问题描述】:

1。 我已经设置了一个 CAS 服务器并在端口上运行:8443 url -> https://ekansh/cas. 我可以看到登录页面,并且可以使用 mysql 数据库用户表凭据成功登录。甚至注销并查看状态。

    我创建了一个演示 grails 应用程序,安装了 spring security 插件并通过 s2-quickstart 创建了用户角色映射。和脚手架域。

    我添加了

    compile ":spring-security-core:2.0-RC4"
    compile ":spring-security-cas:2.0-RC1"
    

    依赖关系。

    在 Config.grovy 中添加配置

    grails.plugin.springsecurity.cas.active = true grails.plugin.springsecurity.cas.loginUri = '/login' grails.plugin.springsecurity.cas.sendRenew = false grails.plugin.springsecurity.cas.serviceUrl = 'http://ekansh:8095/app1/j_spring_cas_security_check' grails.plugin.springsecurity.cas.serverUrlEncoding = 'UTF-8' grails.plugin.springsecurity.cas.key = 'grails-spring-security-cas' grails.plugin.springsecurity.cas.artifactParameter = 'ticket' grails.plugin.springsecurity.cas.serviceParameter = 'service' grails.plugin.springsecurity.cas.filterProcessesUrl = '/j_spring_cas_security_check' grails.plugin.springsecurity.cas.proxyCallbackUrl = 'http://ekansh:8095/app1/secure/receptor' grails.plugin.springsecurity.cas.useSingleSignout = true grails.plugin.springsecurity.cas.serverUrlPrefix = 'https://ekansh:8443/cas' grails.plugin.springsecurity.cas.proxyCallbackUrl = 'http://ekansh:8095/app1/secure/receptor' grails.plugin.springsecurity.cas.proxyReceptorUrl = '/secure/receptor' grails.plugin.springsecurity.logout.afterLogoutUrl ='https://ekansh:8443/cas/logout?url=http://ekansh:8095/app1/' grails.plugin.springsecurity.providerNames = ['casAuthenticationProvider']

当我运行这个应用程序时,我被重定向到 cas 服务器页面,我输入凭据,它让我登录到 cas 服务器,但它会将我发送到带有消息的 spring 安全登录页面

Sorry, we were not able to find a user with that username and password. 从现在开始我什至无法登录应用程序。

我错过了什么?为什么我得到 Spring Security 登录页面。

我还发现,当我评论grails.plugin.springsecurity.providerNames = ['casAuthenticationProvider'] 行时,我可以登录系统。我没有更改casAuthenticationProvider

如有任何帮助,将不胜感激。

【问题讨论】:

【参考方案1】:

经过大量研究,我找到了问题的答案。基本上我确实弄乱了 cas 服务器的配置。

用户正在登录到 cas 服务器,但没有为同一用户生成票证,因此它仍在向应用程序发送未经身份验证的用户响应,并且 spring security 正在重定向到登录页面。

【讨论】:

我也遇到了同样的问题,你能分享你的 cas 服务器配置示例吗?

以上是关于无法使用 CAS 和 Spring 安全性登录到应用程序的主要内容,如果未能解决你的问题,请参考以下文章

如何防止 JA-SIG CAS spring 安全重定向循环?

在springmvc+spring+mybatis框架下怎么使用单点登录cas

CAS服务器认证成功后,如何使Spring安全将用户重定向到原始请求的页面

使用 Spring Security 和 CAS 单点注销

CAS + Spring 安全性

Spring Security 集成 CAS(基于HTTP协议版本)