安裝X-pack之后需要登錄驗證,嵌入自己的web系統之后,如果不實現SSO,內嵌的必然需要登錄,這邊簡單實現下內部系統登錄的同時保持kibana也登錄成功。
一.安裝X-pack之后需要登錄驗證,嵌入自己的web系統之后,如果不實現SSO,內嵌的必然需要登錄,這邊簡單實現下內部系統登錄的同時保持kibana也登錄成功。
1.kibana自帶的登錄接口名稱/internal/security/login,
Header 參數
key-value =>kbn-version : 7.6.1
key-value =>kbn-name : kibana
body的參數(用戶名和密碼都是自己es設置的用戶名和密碼):
username:user
password: password
然后請求獲取到cookie sid:
所以我們只要實現調用本地系統的同時,帶入es系統的用戶名和密碼,進行kibana的登錄即可。
二、統一登出
統一登出其實只要實現本地系統登出的同時,清除cookie即可,由於出現跨域,所有清除cookie需要設置domain.
1 /**
2 * 清除cookie 3 * @return
4 */
5 @ResponseBody 6 @PutMapping(value = "/clearcookie") 7 public ResponseEntity<ResultVo<?>> getCookies(HttpServletRequest httpServletRequest, HttpServletResponse response) { 8 try{ 9 Cookie cookie = new Cookie("sid", null); 10 cookie.setDomain(httpServletRequest.getHeader("x-forwarded-host").split(":")[0]); 11 cookie.setPath("/"); 12 cookie.setHttpOnly(true); 13 cookie.setMaxAge(0); 14 response.addCookie(cookie); 15 return ResponseEntity.ok(new ResultVo<>(ResultStatus.SUCCESS)); 16 }catch (Exception ex){ 17 return ResponseEntity.ok(new ResultVo<>(ResultStatus.FAIL)); 18 } 19
20 }
上述實現了統一登錄和統一登出的功能。