1

Grails 2.2.2,插件 spring-security 核心和 CAS 插件。

假设我已经使用快速启动脚本设置了 spring-security-core,所以我有 User、Role 和 UserRole 表。CAS 已为这些表中表示的用户设置并正常工作。

当有问题的用户访问时,他们使用 CAS 进行重定向探戈,这表示他们没问题,并在 CAS 插件进行票证验证时返回用户名。但是,由于我的 User 表中没有表示用户名,因此根据 spring-security 身份验证失败,所以我无法获取 authorizedUser 或 Principal 等。

但是,即使有问题的用户不在我的用户表中,我也想接受 CAS 身份验证,因此没有角色。我信任这个 CAS 服务器。

如何访问 CAS 票证验证步骤的响应?如果我能做到这一点,我可以使用 CAS 提供的名称创建一个用户并分配一些合理的默认角色。

4

1 回答 1

0

创建您自己的实现org.codehaus.groovy.grails.plugins.springsecurity.GrailsUserDetailsService. 它应该根据传入的用户名创建一个新的 UserDetails,loadUserByUsername而不是检查 User 表。将其设置为具有名称的 spring bean,userDetailsService它应该覆盖默认的 GORM 实现。

于 2013-05-29T18:39:56.103 回答