rest - Grails CAS和REST设置

标签 rest grails spring-security cas

我刚刚开始学习Grails,但仍在努力解决这个问题。
在我的系统中,我有两种类型的 Controller ,常规 Controller 和休息 Controller 。
如果匿名用户在常规 Controller 中执行某项操作,则希望将该用户重定向到他将进行身份验证的CAS服务。然后,CAS应使用票证重定向回我的系统。给定票证,我必须要求非常相同的服务才能给我经过身份验证的实体的标识符(SSN)。拥有SSN后,我必须要求其他服务给我提供可以定义该用户权限的组。然后,我必须 checkin 第三项服务以获取有关该用户的所有其他信息,并在我的数据库中创建一个用户条目。完成所有这些操作并使整个过程顺利进行之后,用户的工作流程应继续进行。
如果针对其余 Controller 的操作执行了请求,则应返回403 header 的json格式错误。
整个事情都是无状态的。身份验证 token 应保留在 header 中, token 应存储在客户端。
我认为这是一种针对用户身份验证的自定义解决方案,而当我不喜欢automagic时,就是这种情况。

所以我现在在哪里。我在grails应用中添加了3个插件:

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

而且我有以下配置设置(域名被遮盖):
grails.plugin.springsecurity.userLookup.userDomainClassName = 'package.User'
grails.plugin.springsecurity.userLookup.authorityJoinClassName = 'package.UserRole'
grails.plugin.springsecurity.authority.className = 'package.Role'
grails.plugin.springsecurity.cas.loginUri = '/login'
grails.plugin.springsecurity.cas.serverUrlPrefix = 'https://example.com'
grails.plugin.springsecurity.cas.proxyCallbackUrl = '${grails.serverURL}/secure/receptor'
grails.plugins.springsecurity.cas.serviceUrl ="/j_spring_cas_security_check"

但是我很确定我在这里和那里都缺少一些和平。
现在做什么?现在,未经授权的用户被重定向到/ auth / login,并且通常的spring安全登录表单向我打招呼进行身份验证。我希望我可以关闭这种行为。

首先,我想问一下,如何获得Spring Security将我重定向到CAS进行身份验证,而不是通常的身份验证。

其次,我想问一下如何解决可以在身份验证过程中实现自定义行为的问题。

第三,任何人都可以用两句话来解释 Spring 安全的过滤器和上下文到底是什么吗?也许有一些文章详细解释了整个过程的工作方式。

先感谢您

最佳答案

我找到了第一个问题的答案。
报告并讨论了一个错误:https://jira.grails.org/browse/GPSPRINGSECURITYCAS-4#issue-tabs
长话短说,一个人必须从cas插件参数中复制所有默认配置参数。这将导致cas插件正确初始化。

我将继续寻找其他两个的修复/说明。

关于rest - Grails CAS和REST设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28210514/

相关文章:

java - 无法使 CAS 单点注销与 Spring Security 一起使用

java - 保护有状态的 Web 服务

java - 如何使用 Spring Boot Rest 的自定义异常?

java - 为什么注释属性 Rest.rootUrl 的值必须是常量表达式?

Perl REST 客户端,身份验证问题

spring - Grails&Spring-在resources.groovy中如何设置列表

java - JAX-RS(Jersey 2 实现)与 URL 扩展 .xml 或 .json 的内容协商

grails - 当getter返回相同的类时,自引用hasMany会引发MappingException

security - Grails 域对象 - 限制对特定用户的访问

grails - session 超时后重定向(Grails、Spring Security Core、Tomcat)