无法使用 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