【问题标题】:Spring Security for Grails app using Spring MVC backend使用 Spring MVC 后端的 Grails 应用程序的 Spring Security
【发布时间】:2013-09-24 07:41:48
【问题描述】:

我有一个使用 Grails 运行的 Web 应用程序,负责管理视图和控制器,并通过服务层 (Grails app using services from spring-mvc backend) 调用 spring-mvc 后端。现在我需要为应用程序实现 Spring Security (SS)。

在这一点上,我不知道如何同时结婚。后端已经有一个功能齐全的 spring 安全实现,但是为了让 Grails 应用程序工作,我需要排除来自 spring-mvc 应用程序的所有瞬态 spring 安全依赖项,并使用纯粹的 Grails 解决方案(也许这是错误的决定?) .后端已经拥有 User 和 Role 对象,以及通过 User 域中的 joinTable 注释建模的 user_roles 表。

问题:

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

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

  3. 所以我实现了一个 UserDetails 对象,一个自定义的 UserDetailsS​​ervice(这应该实现 GrailsUserService 吗?)并将后者公开为一个 bean,一切都应该工作吗?也许是一厢情愿。

任何指导,即使是高水平的,我都会非常感激,因为我目前正在努力确定我的方法,更不用说实施了。

【问题讨论】:

  • 也许这样的事情会有所帮助:grails.org/plugin/spring-security-cas
  • @Gregg 谢谢,但我现在不一定要解耦登录机制。如果我错了,请纠正我,但使用 CAS 来解决这个问题似乎有点矫枉过正。

标签: java grails spring-mvc spring-security


【解决方案1】:

我已经设法实现了我需要做的事情。我已经采用了纯粹的 Grails 方法,因此也有我自己的 userDetails 实现,它的一个实例由我的自定义 userDetailsS​​ervice 返回。 需要注意的一件事是,如果概念证明有效,请确保您以存储密码的格式读取密码。Spring Sec 将对您的密码进行哈希处理,以与数据库中的密码进行比较,并因此,如果您将密码存储为纯文本,您将无法成功加载用户。解决此问题的一种方法是在 resources.groovy 中使用以下配置。

passwordEncoder(PlaintextPasswordEncoder)

但从安全的角度来看,我当然不会提倡将其作为长期解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-30
    • 1970-01-01
    • 2011-01-17
    • 2017-12-25
    • 2013-01-08
    • 1970-01-01
    • 1970-01-01
    • 2011-09-10
    相关资源
    最近更新 更多