Код: Выделить всё
@GetMapping("/ssometabase")
public void ssoToMetabase(HttpServletResponse response, @RequestParam(required = false) String return_to)
throws IOException {
String email = "user@example.com"; /
String firstName = "John";
String lastName = "Doe";
User user = new User();
user.setEmail(email);
user.setFirstName(firstName);
user.setLastName(lastName);
String token = jwtService.signToken(user);
String redirectUrl = metabaseUrl + "/auth/sso?jwt=" + token;
if (return_to != null) {
redirectUrl += "&return_to=" + URLEncoder.encode(return_to, StandardCharsets.UTF_8.toString());
}
System.out.println(redirectUrl);
response.sendRedirect(redirectUrl);
}
@GetMapping("/analytics")
public void showAnalytics(HttpServletRequest request, HttpServletResponse response) throws IOException {
String METABASE_DASHBOARD_PATH = "/dashboard/3?tab=7-circulation";
String iframeUrl = "/ssometabase?return_to=" + METABASE_DASHBOARD_PATH;
String html = "
\
";
response.setContentType("text/html");
response.getWriter().write(html);
}
public String signToken(User user){
Map claims = new HashMap();
claims.put("email", user.getEmail());
claims.put("first_name", user.getFirstName());
claims.put("last_name", user.getLastName());
Date now = new Date();
long expirationTime = now.getTime() + 1000 * 60 * 10;
return Jwts.builder()
.setClaims(claims)
.setExpiration(new Date(expirationTime))
.signWith(SignatureAlgorithm.HS256, secretKey.getBytes())
.compact();
}
. Когда я перехожу по URL-адресу перенаправления, напечатанному в консоли, я вижу панель мониторинга. Любая помощь приветствуется
Подробнее здесь: https://stackoverflow.com/questions/788 ... rd-in-java
Мобильная версия