Как зарегистрировать неавторизованного пользователя (401) при попытке доступа к веб-приложению в Spring Boot - PullRequest
1 голос
/ 27 апреля 2020

Я чувствую, что это должно быть довольно легко исправить с помощью логгера или чего-то еще, но у меня нет большого опыта с его использованием. Я просто пытаюсь войти в систему неавторизованного пользователя, когда я получаю ошибку 401 от остальных API моего веб-приложения. Вот текущий контроллер покоя:

@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; 
}

1 Ответ

2 голосов
/ 27 апреля 2020

Объявить регистратор и распечатать, используя 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;
    }
...