Spring Boot RESTful API上的日志授权失败

时间:2017-03-21 11:43:39

标签: spring-boot spring-security

在Spring Boot中,在RESTful API上记录失败的授权尝试的最佳方法是什么,即在下面,如果用户没有admin角色,默认情况下Spring不会记录访问此方法的失败尝试:

    @PreAuthorize("hasAuthority('admin')")
    @RequestMapping(value = "/getVersion", method = RequestMethod.GET)
    public ResponseEntity<?> printVersion() {
        logger.info("Received get request for version");
        return new ResponseEntity<String>(applicationDetails.getAppVersion(), HttpStatus.OK);
    }

我尝试使用ApplicationListener<AuthorizedEvent>,虽然类似的方法适用于ApplicationListener<AbstractAuthenticationEvent>,但它似乎不适用于AuthorizedEvents

1 个答案:

答案 0 :(得分:1)

您使用了错误的事件,请参阅AuthorizationFailureEvent

  

表示安全对象调用失败,因为无法为该请求授权主体。

     

由于AccessDecisionManagerAfterInvocationManager,可能会抛出此事件。