我正在做一个Spring Boot应用程序,它应该有两部分:一部分是Admin ui,一部分是在vadin中完成的,另一部分是由REST-API端点组成的,供本地应用程序使用。
Admin UI (Form-Login)的身份验证应该完全不同于REST API(例如,使用固定令牌的基本认证,或者来自数据库的令牌)。
实现这一目标的最佳方法是什么?因为它基本上是两个不同的应用程序具有共同的数据访问,它有意义/可能两个实例化两个spring应用程序上下文吗?或者以一种特殊的方式配置弹簧安全性就足够了吗?只需添加一个RestController并从SpringSecurity中排除URL,就已经完成了一半的解决方案,但是如果我还想对我的REST-API进行身份验证,该怎么办呢?但基本上与自己的应用程序提供商完全不同。
Spring支持基于角色的授权和多个身份验证提供者。本质上,你可以给你的管理用户一个特殊的角色,并在你的Vaadin视图中要求这个角色,以防止普通用户访问管理UI。您还可以在同一个应用程序中使用不同的身份验证机制,例如,您可以通过LDAP对用户进行身份验证,而通过数据库对管理员进行身份验证。你不需要做单独的应用程序上下文。