[未经授权的用户(401)尝试在Spring Boot中访问Webapp时如何登录

问题描述 投票:1回答:1

我觉得使用记录器之类的东西应该很容易解决,但是我没有太多使用经验。当我从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; 
}
java spring-boot rest spring-restcontroller
1个回答
2
投票

声明记录器并使用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;
    }
© www.soinside.com 2019 - 2024. All rights reserved.