如何在未授权用户 (401) 尝试访问 Spring Boot 中的 Web 应用程序时登录
How to log an unauthorized user (401) when they try to access a webapp in Spring Boot
我觉得使用记录器之类的东西应该很容易解决这个问题,但我没有太多使用经验。当我从我的 webapp 的其余部分 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;
}
我觉得使用记录器之类的东西应该很容易解决这个问题,但我没有太多使用经验。当我从我的 webapp 的其余部分 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;
}