Проблема связи клиента межмикросервисной связи с Keycloak - Jhipster - PullRequest
0 голосов
/ 17 октября 2018

Я создал одно приложение шлюза, используя JHipster без обнаружения службы, с сервером keycloak oAuth2.Затем другой микросервис (ядро), использующий JHipster.

Я настроил Zuul для пересылки запросов на микросервисы с использованием статического URL, который после этого будет управляться инфраструктурой:

zuul: routes: core: path: /core/** url: http://localhost:7071/core

Когда мы вызываем веб-сервис из Front-end в microservice или шлюз, все идет хорошо, у нас возникает проблема, когда «основной» microservice пытается вызвать веб-сервис в шлюзе, шлюз возвращает 200 со страницей входа в теле содержимого:

В «основном» микросервисе мы настроили FeignClient:

@ FeignClient (name = "gateway", url = "localhost: 8080 /", configuration = FeignConfiguration.class) открытый интерфейс UsersResourceControllerApiClient extends extendsUsersResourceControllerApi {}

public interface UsersResourceControllerApi {

@RequestMapping(value = "/api/getCustomerIdOfCurrentUser",
    produces = "*/*", 
    method = RequestMethod.GET)
ResponseEntity<UUID> getCustomerIdOfCurrentUserUsingGET();

}

security:
    oauth2:
        client:
            client-id: internal
            client-secret: internal
        resource:
            user-info-uri: http://xx/auth/realms/jhipster/protocol/openid-connect/userinfo

на стороне шлюза:

security:
    oauth2:
        client:
            access-token-uri: http://xx/auth/realms/jhipster/protocol/openid-connect/token
            user-authorization-uri: http://xx/auth/realms/jhipster/protocol/openid-connect/auth
            client-id: web_app
            client-secret: web_app
            scope: openid profile email
        resource:
            user-info-uri: http://xx/auth/realms/jhipster/protocol/openid-connect/userinfo

Канал авторизации передается в заголовке запроса от ядрак шлюзу:

2018-10-17 12: 01: 12.130 DEBUG 20704 --- [XNIO-2 task-2] mcpaUsersResourceControllerApiClient: [UsersResourceControllerApiClient # getCustomerIdOfCurrentUserUsingGET] ---> GET http://localhost:8080/api/getCustomerIdOfCurrentUser HTTP / 1.1 2018-10-17 12: 01: 12,130 DEBUG 20704 --- [XNIO-2 задача-2] mcpaUsersResourceControllerApiClient: [UsersResourceControllerApiClient # getCustomerIdOfCurrentUserUsingGET] Accept:* * 1 028 / 2018-10-17 12: 01: 12,131 ОТЛАДКА 20704 --- [XNIO-2 задача-2] mcpaUsersResourceControllerApiClient: [UsersResourceControllerApiClient # getCustomerIdOfCurrentUserUsingGET] Авторизация: Канал eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJhZDVVUWNuNFROMjdmakVoSk5nSEs4TDB5M19wdXNKaGowV09TY0xEVUxrIn0..VJNT61lZr0LvYB2SewGBk025q4TC7ArX7omw4e4kH3wDg76R6_okLj45RO136tZyCz3INnQa5Al73ft7eUM8ccIlOowUV4OLEvIrWSXMyAocxMz36gVGUz6p08ly1aaJX9-JgKDHgFVO-AhHw_MBF-H3vbpaOhTYvTTd8LRsJYj8YFmbfvhCt4GREhoolo6RhlO_J_dt3vV7G4u-OWkW7UTBVCP9rVWhbih2svhrMXbrOp5wMnnWT1OhPS2yJwOjZ2QR8JwOhd-uvtNOEdejkqkAV6PBB4GvK-1bcBTi4nExERpF0QpHd9IrqqnB8dytPNA-dmp2xh6Y0-RI_xu0Ww 2018-10-17 12: 01: 12,142 ОТЛАДКА 20704 --- [XNIO-2 задача-2]mcpaUsersResourceControllerApiClient: [UsersResourceControllerApiClient # getCustomerIdOfCurrentUserUsingGET] ---> END HTTP (0-байтовое тело) 2018-10-17 12: 01: 12.507 DEBUG 20704 --- [XNIO-2 task-2] sourceCurClientTeль--- HTTP / 1.1 200 OK (357 мс) 2018-10-17 12: 01: 12.508 DEBUG 20704 --- [XNIO-2 task-2] mcpaUsersResourceControllerApiClient: [UsersResourceControllerApiClient # getCustomerIdOfCurrentUserUsingGing: no-store, must-revalidate, max-age = 0 2018-10-17 12: 01: 12.508 DEBUG 20704 --- [XNIO-2 task-2] mcpaUsersResourceControllerApiClient: [UsersResourceControllerApiClient # getCustomerIdOfCurrentUserUsingGET]2018-10-17 12: 01: 12.508 DEBUG 20704 --- [задача XNIO-2-2] mcpaUsersResourceControllerApiClient: [UsersResourceControllerApiClient # getCustomerIdOfCurrentUserUsingGET] длина содержимого: 3579 2018-10-17 12: 01: 12.510 DE[XNIO-2 task-2] mcpaUsersResourceControllerApiClient: [UsersResourceControllerApiClient # getCustomerIdOfCurrentUserUsingGET] политика безопасности содержимого: frame-src 'self';фрейм-предки «я»;object-src 'none';2018-10-17 12: 01: 12.510 DEBUG 20704 --- [XNIO-2 task-2] mcpaUsersResourceControllerApiClient: [UsersResourceControllerApiClient # getCustomerIdOfCurrentUserUsingGET] тип содержимого: text / html; charset = utf-8: 20101: 12.510 DEBUG 20704 --- [XNIO-2 task-2] mcpaUsersResourceControllerApiClient: [UsersResourceControllerApiClient # getCustomerIdOfCurrentUserUsingGET] дата: ср., 17 октября 2018 11:01:12 GMT 2018-10-17 12: 01: 12.570- [XNIO-2 task-2] mcpaUsersResourceControllerApiClient: [UsersResourceControllerApiClient # getCustomerIdOfCurrentUserUsingGET] сервер: WildFly / 11 2018-10-17 12: 01: 12.512 DEBUG 20704 # sourceController_Controller3ClientSecrentCoreCareCreCUI_Client_CoreCliCeCrCentCareCoreCliCareCoreCliCeCrSecurityCoreCrCr.] Set-Cookie: KC_RESTART = eyJhbGciOiJIUzI1NiIsImtpZCIgOiAiNjU2MTFmMWQtMGU5Yy00MzZiLWI2YzctNTgzMzFmNGYyMDI5In0.eyJjaWQiOiJ3ZWJfYXBwIiwicHR5Ijoib3BlbmlkLWNvbm5lY3QiLCJydXJpIjoiaHR0cDovL2xvY2FsaG9zdDo4MDgwL2xvZ2luIiwiYWN0IjoiQVVUSEVOVElDQVRFIiwibm90ZXMiOnsic2NvcGUiOiJvcGVuaWQgcHJvZmlsZSBlbWFpbCIsImlzcyI6Imh0dHA6Ly84Ny4xMDEuMjUxLjE5MDoxODUwNy9hdXRoL3JlYWxtcy9qaGlwc3RlciIsInJlc3BvbnNlX3R5cGUiOiJjb2RlIiwiY29kZV9jaGFsbGVuZ2VfbWV0aG9kIjoicGxhaW4iLCJyZWRpcmVjdF91cmkiOiJodHRwOi8vbG9jYWxob3N0OjgwODAvbG9naW4iLCJzdGF0ZSI6IlNmNW9ZaSJ9fQ.V-tQ2vO9P0iOlD6iEwKFoCKHOcmvmCeUr-iXkUStTb8;Version = 1;Path = / авт / царств / jhipster;HttpOnly 2018-10-17 12: 01: 12.513 DEBUG 20704 --- [задача XNIO-2-2] mcpaUsersResourceControllerApiClient: [UsersResourceControllerApiClient # getCustomerIdOfCurrentUserUsingGET] set-cookie-файла: AUTH_Sede0505-s0e5e0e0e5156-d0405-s0406-d0405-e0406-s0405Version = 1;Path = / авт / царств / jhipster;HttpOnly 2018-10-17 12: 01: 12.513 DEBUG 20704 --- [задача XNIO-2-2] mcpaUsersResourceControllerApiClient: [UsersResourceControllerApiClient # getCustomerIdOfCurrentUserUsingGET] x-content-type-options-12: 12: 13: 13: 13: 17: 17DEBUG 20704 --- [XNIO-2 task-2] mcpaUsersResourceControllerApiClient: [UsersResourceControllerApiClient # getCustomerIdOfCurrentUserUsingGET] x-frame-options: SAMEORIGIN 2018-10-17 12: 01: 12.515 DEBUG 2070 204 - задача 2mcpaUsersResourceControllerApiClient: [UsersResourceControllerApiClient # getCustomerIdOfCurrentUserUsingGET] x-powered-by: Undertow / 1 2018-10-17 12: 01: 12.515 DEBUG 20704 --- [XNIO-2 задача-2] покупательтег: нет 2018-10-17 12: 01: 12.515 DEBUG 20704 --- [задача XNIO-2-2] mcpaUsersResourceControllerApiClient: [UsersResourceControllerApiClient # getCustomerIdOfCurrentUserUsingGET] x-xss-protection: 1;mode = block 2018-10-17 12: 01: 12.515 DEBUG 20704 --- [XNIO-2 task-2] mcpaUsersResourceControllerApiClient: [UsersResourceControllerApiClient # getCustomerIdOfCurrentUserUsingGET] 2018-10-17 12: 01: 12.516 --- 20 августа-2 задача-2] mcpaUsersResourceControllerApiClient: [UsersResourceControllerApiClient # getCustomerIdOfCurrentUserUsingGET]

        <meta name="viewport" content="width=device-width,initial-scale=1"/>
<title>        **Log in to jhipster**

***

2018-10-17 12: 01: 12.516B - DE- [XNIO-2 task-2] mcpaUsersResourceControllerApiClient: [UsersResourceControllerApiClient # getCustomerIdOfCurrentUserUsingGET] <--- END HTTP (3579-байтовое тело) </p>

из логического сеанса ниже, это рассматривается как логический сеанс, который ниже рассматривается как псевдоним

Введите: com.example.repository.CustomAuditEventRepository.add () с аргументом [s] = [AuditEvent [timestamp = 2018-10-17T11: 01: 12.222Z, принципал = anonymousUser, тип = AUTHORIZATION_FAILURE , data= enjdetails=org.springframework.security.web.authentication.WebAuthenticationDetails@957e: RemoteIpAddress: 127.0.0.1;SessionId: null, type = org.springframework.security.access.AccessDeniedException, message = Доступ запрещен}]] 2018-10-17 12: 01: 12.251 DEBUG 4848 --- [XNIO-2 task-15] cmmotorna.aop.logging.LoggingAspect: Выход: com.example.repository.CustomAuditEventRepository.add () с result = null 2018-10-17 12: 01: 12.312 INFO 4848 --- [XNIO-2 task-15] Spring Security Debugger:


Создан новый сеанс HTTP: puar4BUKwsI4c8Y6HeLGW4yw8pJD8x3dgkgQweRc

Стек вызовов:

at org.springframework.security.web.debug.Logger.info(Logger.java:44)
at org.springframework.security.web.debug.DebugRequestWrapper.getSession(DebugFilter.java:166)
at javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:279)
at javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:279)

2018-10-17 12:01:12.315 INFO 4848 --- [XNIO-2 task-20] Spring Security Debugger:


Запрос получен для GET '/ login': HttpServletRequestImpl [GET / login]

servletPath:/ войти в Pathinfo: пустые заголовки: Авторизация: однонаправленный eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJhZDVVUWNuNFROMjdmakVoSk5nSEs4TDB5M19wdXNKaGowV09TY0xEVUxrIn0..VJNT61lZr0LvYB2SewGBk025q4TC7ArX7omw4e4kH3wDg76R6_okLj45RO136tZyCz3INnQa5Al73ft7eUM8ccIlOowUV4OLEvIrWSXMyAocxMz36gVGUz6p08ly1aaJX9-JgKDHgFVO-AhHw_MBF-H3vbpaOhTYvTTd8LRsJYj8YFmbfvhCt4GREhoolo6RhlO_J_dt3vV7G4u-OWkW7UTBVCP9rVWhbih2svhrMXbrOp5wMnnWT1OhPS2yJwOjZ2QR8JwOhd-uvtNOEdejkqkAV6PBB4GvK-1bcBTi4nExERpF0QpHd9IrqqnB8dytPNA-dmp2xh6Y0-RI_xu0Ww Accept: / Подключение: держать-жив User-Agent: Java / 1.8.0_144 Хост: локальный: 8080

1068*
 Security filter chain: [
   WebAsyncManagerIntegrationFilter
   SecurityContextPersistenceFilter
   HeaderWriterFilter
   CorsFilter
   CsrfFilter
   LogoutFilter
   OAuth2ClientAuthenticationProcessingFilter
   RequestCacheAwareFilter
   SecurityContextHolderAwareRequestFilter
   AnonymousAuthenticationFilter
   SessionManagementFilter
   ExceptionTranslationFilter
   FilterSecurityInterceptor
 ]

Ищем вашу поддержку:)

...