有没有办法扩展spring-actuator记录器并从我自己的控制器调用它,这样我就可以进行一些安全验证?例如,类似这样的情况:
@RestController
public class MyLoggingController {
@Autowired
private ActuatorLogger logger; // not sure what the actual class name is
@PostMapping("/loggers")
public String setLoggeringLevel( @RequestBody String body ) {
// do security validations
// set logging level
logger.setLoggingLevel( ... ); // not sure what the actual method signature is
return response;
}
}
3条答案
按热度按时间gcuhipw91#
您可以使用Spring Security 保护端点。请参阅保护http端点。
如果springsecurity不是一个选项,并且您确实希望以其他方式控制日志记录,那么执行器没有提供,您可以查看
LoggersEndpoint
:控制它使用的日志记录级别
LoggingSystem
/LoggerGroups
以下是更改日志记录级别的代码片段:gg0vcinb2#
最好的方法是利用spring安全语义。
创建一个bean,该bean将有一个方法来检查特定身份验证主体的访问:
将bean注入websecurityconfigureradapter并使用
access
特定执行器记录端点的方法:就这样。
此处为示例存储库:https://github.com/ikwattro/spring-boot-actuator-custom-security
zzlelutf3#
我同意@denis zavedeev的观点,保护内部端点的最好方法是在security configurer内部,当然如果有可能的话。例如:
你的主要目标是阶级
LoggersEndpoint
,正如@denis zavedeev提到的,有一种设置日志级别的方法当然你可以自动连线
LoggersEndpoint
并调用适当的写入方法,如果我们看一下自动配置: