安装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 }
上述实现了统一登录和统一登出的功能。