我正在使用具有Spring安全核心和Spring Security CAS插件的grails应用程序。我已经设置了具有数据库身份验证的jasig CAS服务器。到目前为止,如果我直接通过CAS与数据库中的用户一起登录,效果很好。
我遇到的问题是当我尝试从grails应用程序登录时。我成功重定向到CAS页面,在登录后,我被发送回grails应用程序,但凭据错误。
在CAS服务器的tomcat日志中,具有以下跟踪信息:2015-01-21 10:55:59,182 WARN [org.jasig.cas.authentication.PolicyBasedAuthenticationManager] - <Cannot find authentication handler that supports http://localhost:8080/myGrailsApp/secure/receptor, which suggests a configuration problem.>
以下是我在grails中的设置:
grails.plugin.springsecurity.cas.serverUrlPrefix = 'https://localhost:8443/cas'
grails.plugin.springsecurity.cas.loginUri = '/login'
grails.plugin.springsecurity.cas.proxyReceptorUrl = '/secure/receptor'
grails.plugin.springsecurity.cas.serviceUrl = 'http://localhost:8080/myGrailsApp/j_spring_cas_security_check'
grails.plugin.springsecurity.cas.proxyCallbackUrl = 'http://localhost:8080/myGrailsApp/secure/receptor'
这是一个具有有效的spring安全性的现有项目,我们已经使用了一段时间,现在尝试将其移至单点登录。
我的CAS服务器或grails应用程序中缺少什么设置?我已经按照default setup for database auth handler设置了我的CAS服务器。
谢谢你的帮助!
最佳答案
您真的需要使用CAS代理功能吗?因为CAS错误表示当您的CAS客户端配置为使用代理时,CAS服务器未配置为处理代理回调(我猜:proxyReceptorUrl
和proxyCallbackUrl
属性)
关于grails - 无法使用Grails通过CAS Single Sign-on登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28075895/