我觉得使用记录器之类的东西应该很容易解决,但是我没有太多使用经验。当我从Webapp的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;
}