Я создал одно приложение шлюза, используя 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
]
Ищем вашу поддержку:)