可以使用 Spring Security 实时加载自定义配置文件吗?

Posted

技术标签:

【中文标题】可以使用 Spring Security 实时加载自定义配置文件吗?【英文标题】:its possible to load custom profiles in real time with Spring Security? 【发布时间】:2019-02-16 03:03:42 【问题描述】:

我正在制作一个应用程序,您可以在其中为用户创建自己的配置文件,是否可以实时验证和授权这些配置文件?或者我必须重新启动应用程序才能接受新的配置文件

应用程序有一个带有不同模块的仪表板,配置文件确定用户是否能够看到模块并查看他在其中的权限 (CRUD)。在前端,我使用的是 Angular 6。所以基本上我需要一个安全框架来对实时创建并存储在数据库中的配置文件进行身份验证和授权。

【问题讨论】:

您能提供更多信息吗?例如,您需要实时加载哪些配置文件? 应用程序有一个带有不同模块的仪表板,配置文件确定用户是否能够看到模块并查看他在其中的权限 (CRUD)。在前端,我使用的是 Angular 6。所以基本上我需要一个安全框架来对实时创建并存储在数据库中的配置文件进行身份验证和授权。 【参考方案1】:

我对你在这里的具体意思有点困惑......需要更多关于创建个人资料的详细信息。

但无论如何,Spring Boot 在动态修改和重新加载配置数据方面提供了相当不错的功能。

这是一个很好的参考:https://jeroenbellen.com/manage-and-reload-spring-application-properties-on-the-fly/。

另外...还有很多与外部配置管理器(如 Consul)的集成,这很有用。它们通常提供可以为您完成大部分工作的安全组件。存储在这些区域中的任何配置都可以使用 Spring 类上的注释在更改时自动重新加载。

Spring 还具有 LDAP 集成 (https://docs.spring.io/spring-ldap/docs/current/reference/),如果您采用该方法,我相信它可以满足您的任何需求。

但同样,请在您的问题中提供更详细的信息,以便我们可以更好地回答,如果这没有涵盖它:)。

【讨论】:

应用程序有一个带有不同模块的仪表板,配置文件确定用户是否能够看到模块并查看他在其中的权限 (CRUD)。在前端,我使用的是 Angular 6。所以基本上我需要一个安全框架来对实时创建并存储在数据库中的配置文件进行身份验证和授权。 如果您将用户详细信息存储在任何类型的数据库中,则没有理由必须重新启动应用程序。该应用程序不会只读取和缓存所有权限或类似内容,除非您不遗余力地让它这样做。 有人告诉我,一旦应用程序启动,您就无法使用 Spring Security 添加新的用户配置文件,因此必须重新启动 Web 应用程序才能让 Spring 识别新的配置文件。 这是您要找的吗? ***.com/questions/9910252/…

以上是关于可以使用 Spring Security 实时加载自定义配置文件吗?的主要内容,如果未能解决你的问题,请参考以下文章

在运行时延迟初始化 Spring Security + 重新加载 Spring Security 配置

Grails:有条件地加载 Spring Security LDAP 插件

使用Spring Security为实时Grails应用程序增加BCrypt logrounds而不重新编码所有密码是否安全?

Spring Security权限缓存

从屏幕修改时如何自动加载 Spring Security

Grails - grails-spring-security-rest - 无法从 application.yml 加载 jwt 机密