private JsonObject createTokenResponse(String topicName, JwtTokenVO jwtTokenVO) { JsonObject response = new JsonObject(); response.addProperty("accessToken", jwtTokenVO.getAccessToken()); response.addProperty("refreshToken", jwtTokenVO.getRefreshToken()); response.addProperty("proxyEndpoint", webSocketKafkaProxyConfig.getProxyPluginConnect()); response.addProperty("topicName", topicName); return response; }
@Override public Response pluginTokenRequest(JwtPluginPayload payload) { hiveValidator.validate(payload); JwtTokenVO responseTokenVO = new JwtTokenVO(); .buildPayload(); responseTokenVO.setAccessToken(tokenService.generateJwtAccessToken(payload, true)); responseTokenVO.setRefreshToken(tokenService.generateJwtRefreshToken(refreshPayload, true));
@Override @ApiModelProperty(hidden = true) public String getAccessToken() { return super.getAccessToken(); } }
@Override @ApiModelProperty(hidden = true) public String getRefreshToken() { return super.getRefreshToken(); } }
private Response getRefreshResponse(JwtPluginPayload payload) { String topic = payload.getTopic(); if (StringUtils.isEmpty(topic)) { logger.warn(INVALID_TOPIC_NAME); return ResponseFactory.response(UNAUTHORIZED, new ErrorResponse(UNAUTHORIZED.getStatusCode(), INVALID_TOPIC_NAME)); } PluginVO pluginVO = pluginService.findByTopic(topic); if (pluginVO == null) { logger.warn(PLUGIN_NOT_FOUND); return ResponseFactory.response(UNAUTHORIZED, new ErrorResponse(UNAUTHORIZED.getStatusCode(), PLUGIN_NOT_FOUND)); } JwtTokenVO responseTokenVO = new JwtTokenVO(); responseTokenVO.setAccessToken(tokenService.generateJwtAccessToken(payload, false)); logger.debug("JwtToken: plugin access token successfully generated with refresh token"); return ResponseFactory.response(CREATED, responseTokenVO, JsonPolicyDef.Policy.JWT_ACCESS_TOKEN_SUBMITTED); }
JwtTokenVO tokenVO = new JwtTokenVO(); JwtUserPayload accessPayload = JwtUserPayload.newBuilder() .withUserId(user.getId()) .buildPayload(); tokenVO.setAccessToken(tokenService.generateJwtAccessToken(accessPayload, false)); tokenVO.setRefreshToken(tokenService.generateJwtRefreshToken(refreshPayload, false)); return tokenVO;
@HiveWebsocketAuth @PreAuthorize("permitAll") public void processRefresh(JsonObject request, WebSocketSession session) throws IOException { if (request.get("refreshToken") == null) { logger.warn("JwtToken: payload was not found"); throw new HiveException(Messages.PAYLOAD_NOT_FOUND, SC_BAD_REQUEST); } JwtRefreshTokenVO refreshTokenVO = new JwtRefreshTokenVO(); refreshTokenVO.setRefreshToken(request.get("refreshToken").getAsString()); String refreshTokenStr = gson.toJson(refreshTokenVO); JwtTokenVO jwtToken = null; try { jwtToken = httpRestHelper.post(authBaseUrl + "/token/refresh", refreshTokenStr, JwtTokenVO.class, null); } catch (ServiceUnavailableException e) { throw new HiveException(e.getMessage(), SC_SERVICE_UNAVAILABLE); } WebSocketResponse response = new WebSocketResponse(); response.addValue("accessToken", jwtToken.getAccessToken()); clientHandler.sendMessage(request, response, session); } }
private Response getRefreshResponse(JwtUserPayload payload) { UserVO user = userService.findById(payload.getUserId()); if (user == null) { logger.warn("JwtToken: User not found"); return ResponseFactory.response(UNAUTHORIZED); } if (!user.getStatus().equals(UserStatus.ACTIVE)) { logger.warn("JwtToken: User is not active"); return ResponseFactory.response(UNAUTHORIZED); } JwtTokenVO responseTokenVO = new JwtTokenVO(); responseTokenVO.setAccessToken(tokenService.generateJwtAccessToken(payload, false)); userService.refreshUserLoginData(user); logger.debug("JwtToken: access token successfully generated with refresh token"); return ResponseFactory.response(CREATED, responseTokenVO, JsonPolicyDef.Policy.JWT_ACCESS_TOKEN_SUBMITTED); }
@HiveWebsocketAuth @PreAuthorize("permitAll") public void processLogin(JsonObject request, WebSocketSession session) throws IOException { JwtRequestVO loginRequest = new JwtRequestVO(); if (request.get("login") != null) { loginRequest.setLogin(request.get("login").getAsString()); } if (request.get("password") != null) { loginRequest.setPassword(request.get("password").getAsString()); } String loginRequestStr = gson.toJson(loginRequest); JwtTokenVO jwtToken = null; try { jwtToken = httpRestHelper.post(authBaseUrl + "/token", loginRequestStr, JwtTokenVO.class, null); } catch (ServiceUnavailableException e) { throw new HiveException(e.getMessage(), SC_SERVICE_UNAVAILABLE); } WebSocketResponse response = new WebSocketResponse(); response.addValue("accessToken", jwtToken.getAccessToken()); response.addValue("refreshToken", jwtToken.getRefreshToken()); clientHandler.sendMessage(request, response, session); }
@Override public Response tokenRequest(JwtUserPayloadView payloadView) { JwtUserPayload payload = payloadView.convertTo(); hiveValidator.validate(payload); JwtTokenVO responseTokenVO = new JwtTokenVO(); UserVO user = userService.findById(payload.getUserId()); if (user == null) { logger.warn(String.format(USER_NOT_FOUND, payload.getUserId())); return ResponseFactory.response(NOT_FOUND, new ErrorResponse(NOT_FOUND.getStatusCode(), String.format(USER_NOT_FOUND, payload.getUserId()))); } if (!user.getStatus().equals(UserStatus.ACTIVE)) { logger.warn("JwtToken: User with specified id {} is not active", payload.getUserId()); return ResponseFactory.response(FORBIDDEN, new ErrorResponse(FORBIDDEN.getStatusCode(), USER_NOT_ACTIVE)); } logger.debug("JwtToken: generate access and refresh token"); JwtUserPayload.JwtUserPayloadBuilder refreshPayload = JwtUserPayload.newBuilder().withPayload(payload); if (payloadView.getRefreshExpiration() != null) { refreshPayload.withExpirationDate(payloadView.getRefreshExpiration()); } responseTokenVO.setAccessToken(tokenService.generateJwtAccessToken(payload, true)); responseTokenVO.setRefreshToken(tokenService.generateJwtRefreshToken(refreshPayload.buildPayload(), true)); return ResponseFactory.response(CREATED, responseTokenVO, JsonPolicyDef.Policy.JWT_REFRESH_TOKEN_SUBMITTED); }
@HiveWebsocketAuth @PreAuthorize("isAuthenticated() and hasPermission(null, 'MANAGE_TOKEN')") public void processTokenCreate(JsonObject request, WebSocketSession session) throws IOException { JsonObject payload = request.get(Constants.PAYLOAD).getAsJsonObject(); if (payload == null) { logger.warn("JwtToken: payload was not found"); throw new HiveException(Messages.PAYLOAD_NOT_FOUND, SC_BAD_REQUEST); } hiveValidator.validate(payload); String jwtTokenStr = (String) session.getAttributes().get(WebSocketAuthenticationManager.SESSION_ATTR_JWT_TOKEN); JwtTokenVO jwtToken = null; try { jwtToken = httpRestHelper.post(authBaseUrl + "/token/create", payload.toString(), JwtTokenVO.class, jwtTokenStr); } catch (ServiceUnavailableException e) { throw new HiveException(e.getMessage(), SC_SERVICE_UNAVAILABLE); } WebSocketResponse response = new WebSocketResponse(); response.addValue("accessToken", jwtToken.getAccessToken()); response.addValue("refreshToken", jwtToken.getRefreshToken()); clientHandler.sendMessage(request, response, session); }