我正在尝试将Stripes Web应用程序转换为Grails.Stripes应用程序使用Spring Security,但我希望Grails应用程序使用Spring Security Grails插件.
该应用程序已经有User
和Role
我需要重用,即我不能使用的Grails的领域类(Java)的类S2-快速启动脚本生成.
Spring Security插件文档描述了如何使用现有的User
域类.步骤似乎是:
UserDetails
从现有User
域类读取的实现UserDetailsService
返回(1)实例的自定义实现userDetailsService
.但是,文档不提供有关如何使用现有Role
类的任何信息以及表示User
和之间的多对多关系的类Role
.
利用现有的其他措施是必要的Role
,User
以及UserRole
类与Grails的春季安全插件?如果我不想生成任何域类,是否有任何理由让我运行s2-quickstart脚本?
最后,你需要的是一个新的
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)