繁体   English   中英

使用Spring MVC后端的Spring Security for Grails应用程序

[英]Spring Security for Grails app using Spring MVC backend

我有一个与Grails一起运行的Web应用程序,它负责维护视图和控制器,并通过服务层调用spring-mvc后端( 使用来自spring-mvc后端的服务的Grails应用程序 )。 现在,我需要为该应用程序实现Spring Security(SS)。

在这一点上,我不确定如何将两者结婚。 后端已经具有功能完备的Spring安全性实现,但是要使Grails应用程序正常工作,我需要排除所有来自spring-mvc应用程序的临时性Spring Security依赖项,并采用纯Grails解决方案(也许这是一个错误的决定?) 。 后端已经具有User和Role对象,并具有通过User域中的joinTable注释建模的user_roles表。

问题:

  1. 我在正确的轨道上吗? 忽略Java后端使用其数据对象的SS bar的所有内容,并使用带有SS插件的Grails impl? 我看到过一些帖子说我什至不需要使用Grails插件,但是它们现在已经很老了,我不确定如何注释控制器和服务。

  2. 如果采用Grails,我不确定后端需要什么以及需要在Grails中重新实现/扩展的内容。 我在后端应用程序中有一个SS扩展的User和UserDetailsS​​ervice,但是不能使用它们,因为我已经完全排除了它们所依赖的所有SS jar,所以我想必须自己动手?

  3. 所以我实现了一个UserDetails对象,一个自定义的UserDetailsS​​ervice(应该实现GrailsUserService吗?),并将后者作为bean公开,并且一切正常? 一厢情愿的想法。

任何指导,即使是高水平的指导,也将不胜感激,因为我目前正在努力确定自己的方法,不用担心实现。

我设法实现了使此工作所需的一切。 我采用了纯粹的Grails方法,因此也有我自己的userDetails实现,我的自定义userDetailsS​​ervice返回了它的实例。 如果要获得概念证明有效,需要注意的一件事是确保以存储的格式读回密码。SpringSec将对您的密码进行哈希处理,以与数据库中的密码进行比较,然后因此,如果您将密码存储为纯文本格式,则不会成功加载用户。 解决此问题的一种方法是在resources.groovy中使用以下配置。

passwordEncoder(PlaintextPasswordEncoder)

但是,从安全角度来看,我当然不主张将其作为长期解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM