如何为管理端点使用基本安全性,例如/env, /health, /metrics?与其他应用程序控制器端点安全性相比,我想为上述端点使用不同的用户凭据.在我的application.properties文件中,我在下面指定了应用程序控制器安全性
security.user.name=user security.user.password=password
但我想要管理端点的用户名/密码不同.找不到management.security.user.name物业.
AuthenticationManagerSpring security在@Beantype 的实例中配置了“全局” GlobalAuthenticationConfigurerAdapter。这AuthenticationManager是由属性配置的security.user.*,除非您设置了security.basic.enabled=false。默认情况下,全局AM也附加到管理端点,并且它是AuthenticationManagers中定义的任何“本地”的父级WebSecurityConfigurationAdapters(它们都是ProviderManagers)。
因此,如果您希望管理端点和应用程序端点使用不同的用户帐户,您(至少)有两种选择:
AM在 a 中为您的应用程序端点定义本地WebSecurityConfigurationAdapter,并确保管理端点不被该过滤器覆盖。这很容易,因为您不需要太多思考,只需添加一个AuthenticationManagerBuilder即可WebSecurityConfigurationAdapter(只要相对于保护管理端点的过滤器仔细排序)。
对应用程序端点使用全局AM(或者实际上是另一个本地端点),并重新配置管理端点的安全性(例如,设置security.basic.enabled=false并添加您自己的WebSecurityConfigurerAdapter覆盖管理端点)。这可能需要更多工作,并且会重复一些启动默认值,但至少您会知道您会得到什么。
| 归档时间: |
|
| 查看次数: |
9801 次 |
| 最近记录: |