spring 安全提供商之间有什么区别? (Spring Roo 2 M3)

What are the differences between spring security providers? (Spring Roo 2 M3)

好吧,我正在构建一些个人项目来学习 spring roo 2。现在我正在努力解决 spring 安全问题。 google 中关于 spring roo 2 的信息很少,而关于 spring 与 spring roo 相关的引导的许多相对有用的信息。

使用命令 "security setup" 你得到了“--provider”选项。

这是帮助给你的描述:

optional --provider: The Spring Security provider to install. Possible values are: DEFAULT (default Spring Security configuration provided by Spring Boot will be used), and SPRINGLETS_JPA (advanced Spring Security configuration will be included using Springlets JPA Authentication).; default: 'DEFAULT'

我找不到这两个选项之间的区别,即使在 spring roo M3 参考文档中也是如此。即使搜索 "Springlets JPA Authentication" 也没有提供任何相关信息。

有人对此有任何线索吗?

谢谢

以下是这两个提供商之间的主要区别:

  • DEFAULT: 是默认的 Spring Security auto-configuration 由 Spring Boot 提供,当你在你的项目中包含 spring-boot-starter-security类路径。这是默认选项,因为 Spring Roo 始终尝试生成使用 Spring Boot.

    提供的 auto-configuration 的应用程序
    • 如果以下更改将应用​​于您的项目,则选择此选项:
      • spring-boot-starter-security 依赖项将包含在您的 pom.xml 文件中
    • 如果您想了解有关此配置的更多信息,您应该查看 spring boot reference guide
  • SPRINGLETS_JPA:如果你select这个提供者,默认的Spring安全auto-configuration由Spring引导将被使用.此外,此提供程序会将 Springlets 库包含到您的类路径中,为您提供 auto-configure 高级 Spring 安全属性的一些额外入门。此外,将安全身份验证配置为使用数据库中的用户,而不是 Spring Boot auto-configuration 提供的默认 in-memory 身份验证。您将能够使用 application.properties 文件并包括属性 springlets.security.auth.in-memory.enabledspringlets.security.auth.in-memory.erase-credentials.

    来管理这些配置
    • 如果以下更改将应用​​于您的项目,则选择此选项:
      • springlets-boot-starter-authentication 依赖项将包含在您的 pom.xml 文件中
      • security.enable-csrf=true 属性 将包含在内以启用 CSRF。进一步了解 CSRF 和 Spring 安全性 here
    • 了解更多关于 Spring 让安全项目检查 the Springlets project page

希望对您有所帮助,