public void loginManual(PrintStream printer, Reader reader) throws IOException, ServerRequest.HttpFailure, VerificationException { CallbackListener callback = new CallbackListener(); callback.start(); String redirectUri = "urn:ietf:wg:oauth:2.0:oob"; String authUrl = deployment.getAuthUrl().clone() .queryParam(OAuth2Constants.CLIENT_ID, deployment.getResourceName()) .queryParam(OAuth2Constants.REDIRECT_URI, redirectUri) .build().toString(); printer.println("Open the following URL in a browser. After login copy/paste the code back and press <enter>"); printer.println(authUrl); printer.println(); printer.print("Code: "); String code = readCode(reader); processCode(code, redirectUri); status = Status.LOGGED_MANUAL; }
private void logout(AccessTokenResponse accessTokenResponse) { try(CloseableHttpClient client = HttpClientBuilder.create().build()) { HttpPost post = new HttpPost(KeycloakUriBuilder.fromUri(baseUrl) .path(ServiceUrlConstants.TOKEN_SERVICE_LOGOUT_PATH).build(LiveOak.LIVEOAK_APP_REALM)); List<NameValuePair> formparams = new ArrayList<>(); formparams.add(new BasicNameValuePair(OAuth2Constants.REFRESH_TOKEN, accessTokenResponse.getRefreshToken())); formparams.add(new BasicNameValuePair(OAuth2Constants.CLIENT_ID, "liveoak-admin-client")); UrlEncodedFormEntity form = new UrlEncodedFormEntity(formparams, "UTF-8"); post.setEntity(form); client.execute(post); } catch (IOException e) { // Not a problem we need to report } this.accessTokenResponse = null; }
private void logoutDesktop() throws IOException, URISyntaxException, InterruptedException { CallbackListener callback = new CallbackListener(); callback.start(); String redirectUri = "http://localhost:" + callback.server.getLocalPort(); String logoutUrl = deployment.getLogoutUrl() .queryParam(OAuth2Constants.REDIRECT_URI, redirectUri) .build().toString(); Desktop.getDesktop().browse(new URI(logoutUrl)); callback.join(); if (callback.errorException != null) { throw callback.errorException; } }
final String authUrl = deployment.getAuthUrl().clone() .queryParam(OAuth2Constants.CLIENT_ID, deployment.getResourceName()) .queryParam(OAuth2Constants.REDIRECT_URI, redirectUri) .queryParam(OAuth2Constants.STATE, state) .build().toString();