当未经授权的用户(401)试图在Spring Boot中访问网络应用程序时,如何记录他们



我觉得这应该是一个使用记录器之类的非常简单的修复程序,但我没有太多使用记录器的经验。当我从我的网络应用程序的rest api中得到401错误时,我只是试图记录未经授权的用户。这是当前的休息控制器:

@RestController
public class bagelController {
@Autowired
private bagelService bagelService;
@Autowired
private UserService userService;
@GetMapping("/rest/bagel/search")
public ResponseEntity<Bagel> searchBagel (@RequestParam(value = "bagel", required = false) String bagel, 
@RequestParam(value = "bagelInd", required = false, defaultValue = "1") int bagelInd) {
ResponseEntity<Bagel> response;
Bagel bagel = null;
if(!userService.getCurrentUser().isBagelEditAccess()) {
response = ResponseEntity.status(HttpStatus.UNAUTHORIZED).build();
//I'd want to log the unauthorized user right here I believe
}
else {
bagel = bagelService.getbagel(bagel, bagelInd);
if (bagel == null) {
response = ResponseEntity.notFound().build();
}
else {
response = ResponseEntity.ok(cnl);
}
} 
return response; 
}

声明记录器并使用log.info((打印……

导入此:

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

代码:

@RestController
public class bagelController {
private final Logger log = LogManager.getLogger();
@Autowired
private bagelService bagelService;
@Autowired
private UserService userService;
@GetMapping("/rest/bagel/search")
public Bagel searchBagel (@RequestParam(value = "bagel", required = false) String bagel,
@RequestParam(value = "bagelInd", required = false, defaultValue = "1") int bagelInd) {
Bagel bagel = null;
if(!userService.getCurrentUser().isBagelEditAccess()) {
response = ResponseEntity.status(HttpStatus.UNAUTHORIZED).build();
//I'd want to log the unauthorized user right here I believe
log.info("Unauthorized User: "+userService.getCurrentUser());
}
else {
bagel = bagelService.getbagel(bagel, bagelInd);
if (bagel == null) {
response = ResponseEntity.notFound().build();
}
else {
response = ResponseEntity.ok(cnl);
}
}
return response;
}

最新更新