相关疑难解决方法(0)

使用Spring Security插件的现有域类

我正在尝试将Stripes Web应用程序转换为Grails.Stripes应用程序使用Spring Security,但我希望Grails应用程序使用Spring Security Grails插件.

该应用程序已经有UserRole我需要重用,即我不能使用的Grails的领域类(Java)的类S2-快速启动脚本生成.

Spring Security插件文档描述了如何使用现有的User域类.步骤似乎是:

  1. 定义UserDetails从现有User域类读取的实现
  2. 定义一个UserDetailsService返回(1)实例的自定义实现
  3. 将(2)的实例注册为名为的Spring bean userDetailsService.

但是,文档不提供有关如何使用现有Role类的任何信息以及表示User和之间的多对多关系的类Role.

利用现有的其他措施是必要的Role,User以及UserRole类与Grails的春季安全插件?如果我不想生成任何域类,是否有任何理由让我运行s2-quickstart脚本?

Burt答案的后续问题

最后,你需要的是一个新的 GrailsUser

想必GrailsUser这里是指自定义UserDetails实现?在我的情况下,我可能只是直接实现接口.这样的事情看起来合情合理吗?

class UserAdapter implements UserDetails {
  private String password  
  private Collection<GrantedAuthority> springRoles

  UserAdapter(User user) {
    this.password = user.password

    Collection<Role> roles = // load legacy Role objects
    this.springRoles = roles.collect …
Run Code Online (Sandbox Code Playgroud)

grails spring spring-security

6
推荐指数
1
解决办法
6131
查看次数

标签 统计

grails ×1

spring ×1

spring-security ×1