【问题标题】:What is good practice to configure Spring MVC application with Spring security?使用 Spring 安全性配置 Spring MVC 应用程序的良好做法是什么?
【发布时间】:2013-11-15 16:14:30
【问题描述】:

假设我有带有 Spring 安全性的 Spring MVC 驱动的应用程序。我有:

  1. UserBean 类,提供对表 User 的 CRUD 操作
  2. UserController : 将 User 上的操作公开给 http 客户端的控制器
  3. UserLogin:来自 Spring security 的身份验证提供程序,用于对用户进行身份验证。

如果出现以下情况,我应该如何配置我的应用程序:

  1. 我想要简单的 XML 配置,通过注释自动发现 bean ()
  2. UserLogin 和 UserController 需要 UserBean 才能工作
  3. UserLogin 和 UserController 使用事务注解和方面注解

我看到了以下机会:

创建一个通用 Spring XML 配置文件,供 DispatcherServlet 和 ContextLoaderListener 使用

  • 缺点:没有人在教程中显示该解决方案。所有 bean 都是重复的(一个实例在 ContextLoaderListener 上下文中,第二个在 DispatcherServlet 中)。重复可能会导致一些难以跟踪的错误。复制并不优雅

创建两个Spring XML配置文件,一个用于ContextLoaderListener(main),一个用于DispatcherServlet(控制器)。 UserBean 在第一个配置中声明,在第二个配置中可见

  • 缺点:为避免重复,我必须在两个文件中添加复杂的组件扫描规则(上下文:组件扫描)。 必须在两个文件中定义。在声明新内容时,我仍然会怀疑哪个配置文件合适。

创建两个 Spring XML 配置文件并包含第三个用于常见设置,例如
  • 缺点:我想要简单的解决方案...

总结:我正在寻找使用 Spring MVC + Spring Security 配置应用程序的良好实践,并且安全部分与业务部分高度相关。我一直在寻找很好的例子,但我总是发现安全代码与业务代码隔离的情况。但是当安全和业务共享代码时,我需要示例

类似问题:ContextLoaderListener or not?

【问题讨论】:

    标签: spring spring-mvc spring-security


    【解决方案1】:

    我的问题中隐藏的信息是:有两个上下文是愚蠢的。

    1. 有人已经注意到了吗?
    2. 有没有办法进行单一应用程序配置?

    答案:

    1. 是的。 https://jira.springsource.org/browse/SPR-6903
    2. 是的。 https://github.com/michaldo/spring-single-context-demo

    这里描述了适用于我的案例的最佳实践:https://stackoverflow.com/a/14032213/2365727

    【讨论】:

      【解决方案2】:

      我的配置有两个 xml 文件,没有什么特别的原因,结果就是这样。

      这些示例 Spring 安全项目提供了许多不同类型配置的良好示例,也许您可​​以找到适合您的东西:

      https://github.com/spring-projects/spring-security/tree/master/samples

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-01-02
        • 2016-07-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-19
        • 1970-01-01
        • 2019-07-05
        相关资源
        最近更新 更多