Проблема аутентификации с пружинной безопасностью, JWT на ресурсе API - PullRequest
0 голосов
/ 22 октября 2018

У меня возникла проблема, связанная с аутентификацией, когда я выхожу из своего приложения при попытке получить GET с конечной точки, созданной из POST (HTTTP STATUS 201). Я вижу следующие ошибки.Бэкэнд видит пользователя как anonymousUser, когда я вошел в систему, но отлично работает для другой конечной точки в том же файле:

2018-10-22 11: 33: 35.251 DEBUG 2124 --- [XNIO-8 task-23] cclink.aop.logging.LoggingAspect: Введите: org.springframework.boot.actuate.audit.AuditEventRepository.add () с аргументом [s] = [AuditEvent [timestamp = Пн 22 октября 11:33:35PDT 2018, принципал = anonymousUser, тип = AUTHORIZATION_FAILURE, data= enjdetails=org.springframework.security.web.authentication.WebAuthenticationDetails@fffed504: RemoteIpAddress: 127.0.0.1;SessionId: _5aP-S8x27gGSIjtbkR6EwrWOD9Yybnd-4M3z0ol, type = org.springframework.security.access.AccessDeniedException, message = Доступ запрещен}]] 2018-10-22 11: 33: 35.258 DEBUG 2124-8, задача 23] cclink.aop.logging.LoggingAspect: Выход: org.springframework.boot.actuate.audit.AuditEventRepository.add () с result = null 2018-10-22 11: 33: 35.343 WARN 2124 --- [задача XNIO-8-23] ozpspring.web.advice.AdviceTrait: не авторизовано: для доступа к этому ресурсу требуется полная аутентификация

Один и тот же ресурс (DeliveryResource.java) имеет конечную точку, которая отлично работает, единственное отличие между обоими конечнымиpoints is one is / getList (этот работает нормально) VS./ getPackingListReport / {номер} (этот не проходит аутентификацию).

Определения API приведены ниже:

@GetMapping("/getPackingListReport/{number}")
@Secured(AuthoritiesConstants.USER)
@Timed
public ArrayList<WebOrder> getPackingListReportFromDB(@PathVariable("number") long packingListNbr)

против

@GetMapping("/getList")
@Secured(AuthoritiesConstants.USER)
@Timed
public WebOrder getList(@RequestParam(value = "custid") long custid,@RequestParam(value = "pId") long pId) {

1 Ответ

0 голосов
/ 24 октября 2018

Я обнаружил проблему.

Я использовал следующее для сопоставления "/ getList":

    // call dao to insert to DB the list and then call the stored proc
    URI location = ServletUriComponentsBuilder.fromCurrentContextPath().path("/api/rest/getPackingListReport/{packingListNumber}").buildAndExpand(packingListNumber).toUri();

    return ResponseEntity.created(location).build();

, чтобы вернуть URI созданного ресурса (HTTP STATUS 201) после POST,Этот путь содержал неверный URI, начинающийся с «http://localhost", когда jHipster в настоящее время по умолчанию настроен на обработку и поиск только« / api », или в моем случае я добавил« / rest / api / * »на стороне Angular5.

Я исправил проблему, отфильтровав все символы перед "/ api /" после получения URL.

...