Spring Security用于安全认证
Spring Actuator用于应用监控
在实际项目中,两者结合使用的一些注意事项,总结如下:
endpoints.sensitive 用于控制 actuator 端点,security.basic 用于控制 Controller 层接口,二者互不影响
针对 actuator 的权限控制
1. endpoints.sensitive 和 management.security.enabled 有一个关闭,则无需鉴权,例如:
endpoints.sensitive = false 所有端点打开,即无需密码验证,即使 management.security.enabled=true,也配置了 security.user,也无需鉴权。
endpoints.sensitive = true 所有端点需要验证,但 management.security.enabled=false,即使配置了 security.user,也无需鉴权。
2. endpoints.sensitive 和 management.security.enabled 都打开的情况下:
1)配置了 security.user,使用对应用户名/密码可打开
2)未配置 security.user,则一定打不开
3. 若需单独开启或关闭某个端点,则使用 endpoints.端点名.属性名=true/false,例如: endpoints.info.sensitive=false
注: actuator 端点权限控制与 security.basic.enabled 无关。以上规则,对于单个端点的开关,同样适用。
针对 Controller 层接口权限控制
1. security.basic.enabled=false,则所有接口无需鉴权,即使配置了 security.user
2. security.basic.enabled=true,也配置了 security.user,则看 security.basic.path,则只有该path中的接口需要鉴权,默认为所有接口
3. 若需要单独控制某个接口,则使用 security.basic.path=/config/qryUser 多个时以逗号隔开
注: Controller 层接口权限控制与 endpoints.sensitive 和 management.security.enabled 无关