profile
viewpoint
Jonathan Hult jhult Mythics Austin, TX https://jonathanhult.com Experienced IT consultant with deep understanding of Oracle FMW stack, hands-on experience & years of experience in design, development, support of projects.

jhult/Chrome-Extension-Remove-Redirects 2

Remove Rude Redirects, That Are Hidden in OnMouseDown Events And That Are Modifying The HREF Property On-The-Fly. Common In All Of Google-Search, Outbrain And Taboola Crappy Recommendations, The Extension Also Tells You How-Much Redirects Were Hidden In The Page And Were Removed :]

jhult/email4j 1

High level java API for managing and sending emails

jhult/chronos-timetracker 0

Desktop client for JIRA. Track time, upload worklogs without a hassle.

jhult/confluence-rest-client 0

A simple Java client for the Confluence REST API.

jhult/content-and-experience-toolkit 0

The Oracle Content and Experience Toolkit and SDKs help you develop custom applications that consume content that is managed in the OCE repository. These applications can be developed in the Content and Experience Cloud or using 3rd party tools.

jhult/DataFire 0

A framework for building integrations and APIs

jhult/def-guide-to-stellent-content-server-dev 0

Source code for 'The Definitive Guide to Stellent Content Server Development' by Brian Huff

startedmcollovati/vaadin-spinkit

started time in 2 days

push eventteamatldocker/confluence

Jonathan Hult

commit sha 316e4fe3f8cbb525f5982e78e15ff7d8554fe8e9

7.5.0

view details

push time in 2 days

push eventteamatldocker/jira

Jonathan Hult

commit sha 2e48b95f8b80064f5add24f1888a7f2c8b7985d3

Jira 8.9.0 and Service Desk 4.9.0

view details

push time in 3 days

PR closed mcollovati/vertx-vaadin

Minor updates

Some minor updates to Vaadin 15 codebase

+345 -96

0 comment

10 changed files

jhult

pr closed time in 4 days

Pull request review commentvaadin/flow

Add additional methods to VaadinRequest interface

      * Returns the portion of the request URI that indicates the context of the      * request. The context path always comes first in a request URI.      *-     * @see HttpServletRequest#getContextPath()+     * @see javax.servlet.http.HttpServletRequest#getContextPath()      *      * @return a String specifying the portion of the request URI that indicates      *         the context of the request      */     String getContextPath(); +    /**+     * Returns the part of this request's URL that calls the servlet. This path+     * starts with a "/" character and includes either the servlet name or a+     * path to the servlet, but does not include any extra path information or+     * a query string.+     *+     * @see javax.servlet.http.HttpServletRequest#getServletPath()+     *+     * @return a String containing the name or path of the servlet being called,+     *         as specified in the request URL, decoded, or an empty string if+     *         the servlet used to process the request is matched using the+     *         "/*" pattern.+     */+    String getServletPath();

You are correct about this. I ended up removing the method entirely since it was only used in two places:

  • VaadinServletService - a cast can be done to VaadinServletRequest
  • FaviconHandler - the necessary info can be retrieved via another mechanism
jhult

comment created time in 5 days

delete branch jhult/flow

delete branch : deploymentconfig-fix

delete time in 5 days

push eventjhult/flow

Jonathan Hult

commit sha bd50187ee74eeca22b3437533e43531f951ceb53

Remove getServletPath; use getRequestURI and decoder in FaviconHandler

view details

push time in 5 days

Pull request review commentvaadin/flow

Add additional methods to VaadinRequest interface

      * Returns the portion of the request URI that indicates the context of the      * request. The context path always comes first in a request URI.      *-     * @see HttpServletRequest#getContextPath()+     * @see javax.servlet.http.HttpServletRequest#getContextPath()      *      * @return a String specifying the portion of the request URI that indicates      *         the context of the request      */     String getContextPath(); +    /**+     * Returns the part of this request's URL that calls the servlet. This path+     * starts with a "/" character and includes either the servlet name or a+     * path to the servlet, but does not include any extra path information or+     * a query string.+     *+     * @see javax.servlet.http.HttpServletRequest#getServletPath()+     *+     * @return a String containing the name or path of the servlet being called,+     *         as specified in the request URL, decoded, or an empty string if+     *         the servlet used to process the request is matched using the+     *         "/*" pattern.+     */+    String getServletPath();++    /**+     * Reconstructs the URL the client used to make the request. The returned+     * URL contains a protocol, server name, port number, and server path, but+     * it does not include query string parameters.+     *+     * @see javax.servlet.http.HttpServletRequest#getRequestURL()+     *+     * @return a StringBuffer object containing the reconstructed URL+     */+    StringBuffer getRequestURL();++    /**+     * Returns the part of this request's URL from the protocol name up to+     * the query string in the first line of the HTTP request.+     *+     * @return a String containing the part of the URL from the protocol+     *         name up to the query string+     *+     * @see javax.servlet.http.HttpServletRequest#getRequestURI()+     */+    String getRequestURI();++    /**+     * Returns the query string that is contained in the request URL after+     * the path.+     *+     * @see javax.servlet.http.HttpServletRequest#getQueryString()+     *+     * @return a String containing the query string or <code>null</code>+     *         if the URL contains no query string.+     */+    String getQueryString();

Understood. If these changes get accepted, I would be glad to submit a pull request for Vaadin Portlet.

jhult

comment created time in 5 days

Pull request review commentvaadin/flow

Add additional methods to VaadinRequest interface

 import java.io.Serializable; import java.util.function.BiFunction; -import javax.servlet.ServletContext;- import com.vaadin.flow.server.StreamResource;+import com.vaadin.flow.server.VaadinService;  /**  * Content type resolver.  * <p>  * Allows to get content type for the given {@link StreamResource} instance- * using the current {@link ServletContext}.+ * using the current {@link VaadinService}.  *  * @author Vaadin Ltd  * @since 1.0  *  */ public interface ContentTypeResolver extends-        BiFunction<StreamResource, ServletContext, String>, Serializable {+        BiFunction<StreamResource, VaadinService, String>, Serializable {

You are correct that this does change the signature for ContentTypeResolver and would be a breaking change. Since VaadinService already contains a method to retrieve the content type using getMimeType(String), it makes sense to use VaadinService here. In addition, using VaadinService instead of ServletContext (or even VaadinContext) gives more flexibility for changes in the future to be implemented in a non-breaking way. For these reasons, it seems like a worthwhile change to me and I did update the relevant touchpoints (e.g. StreamResource and tests).

jhult

comment created time in 5 days

Pull request review commentvaadin/flow

Add additional methods to VaadinRequest interface

 import java.util.Locale; import java.util.Map; -import javax.servlet.ServletRequest; import javax.servlet.http.Cookie;-import javax.servlet.http.HttpServletRequest;

While not strictly required (since imports are only used at compile time), these changes still help remove dependence on servlet-api (issue #4613). However, I can revert these (or remove the references to javavx.servlet altogether) if so desired.

jhult

comment created time in 5 days

pull request commentvaadin/flow

Add additional methods to VaadinRequest interface

The goal of these changes is to enable better support for environments that don't natively implement servlet-api (such as Vert.x). This aligns with issue #4613.

jhult

comment created time in 5 days

issue commentvaadin/flow

Add target constants for Anchor to use with alternate setTarget method

As it relates to 3, getTargetEnum() will (currently) return an empty Optional if the String value on the Anchor is not a recognized AnchorTarget value.

joelpop

comment created time in 5 days

issue commentvaadin/flow

Add target constants for Anchor to use with alternate setTarget method

I just submitted a pull request: #8397

A few questions/notes:

  1. Are there other valid target values besides the ones @joelpop specified? 1A. If so, should we deprecate the setTarget(String)/getTarget(String) methods?
  2. Due to other existing tests (I believe they were in ComponentTest and HtmlComponentSmokeTest), I had to keep the original String methods and add 2 new methods with different names: setTargetEnum(AnchorTarget)/getTargetEnum()
  3. If there is no target (meaning the target was removed since it was set with "" or AnchorTarget.DEFAULT), should getTargetEnum() return AnchorTarget.DEFAULT or Optional.empty()?
joelpop

comment created time in 5 days

PR opened vaadin/flow

Add target constants for Anchor to use with alternate setTarget method (#8346)

Implements #8346. See the issue for further discussion.

+149 -1

0 comment

4 changed files

pr created time in 5 days

push eventjhult/flow

Jonathan Hult

commit sha b61df399c08fe0ccd0397ab7e61024be6962805c

Add target constants for Anchor to use with alternate setTarget method

view details

push time in 5 days

create barnchjhult/flow

branch : #8346

created branch time in 5 days

issue commentvaadin/flow

create server-side API to access the current Location and the View chain

Any updates on this?

Currently, I am using the mechanism Karibu-DSL provides seen here.

vlukashov

comment created time in 6 days

issue commentteamatldocker/jira

"Custom changes have not been carried over" after Jira upgrade

@rwarren, I think Atlassian is always going to show this to you. I don't think this indicates an issue. Do you believe this is an issue?

rwarren

comment created time in 7 days

issue openedSmile4ever/Neat-URL

Chrome store - bug reports links to wrong repo

image

The link for bug reports should point to this repo instead.

created time in 7 days

startedSmile4ever/Neat-URL

started time in 7 days

issue commentteamatldocker/confluence

Cannot install it with docker-compose

@MatthiasHertel,

Does this help? https://confluence.atlassian.com/confkb/unable-to-start-confluence-due-to-jmx-182158269.html

MatthiasHertel

comment created time in 9 days

startedKotlin/kotlinx.serialization

started time in 10 days

pull request commentvaadin/flow

Add additional methods to VaadinRequest interface

@denis-anisimov, @Legioth, @pleku - any thoughts on this?

This relates to issue #5565 and helps lessen the dependence on servlet-api.

jhult

comment created time in 10 days

startednikolaeu/numi

started time in 10 days

startedchrisgray13/TogglToOpenAir-ChromeExtension

started time in 11 days

startedjoefitzgerald/openair

started time in 11 days

delete branch jhult/karibu-dsl

delete branch : tabsheet-patch

delete time in 12 days

push eventjhult/karibu-dsl

Martin Vysny

commit sha 0afb975b2d47c2c7c694954e7633ccd895a04cd1

Add workaround for https://github.com/vaadin/vaadin-grid-flow/issues/912

view details

Jonathan Hult

commit sha 0a8ecf5fd6de4de3d93887276482cb6c0823e524

Fix mention of TabHost that wasn't renamed to TabSheet in test class

view details

push time in 12 days

create barnchjhult/karibu-dsl

branch : tabsheet-patch

created branch time in 13 days

push eventjhult/flow

caalador

commit sha eb3a03abca6ede797253355bf15744e909808b0a

Fix copyright headers (#7619)

view details

Denis

commit sha f8e4759c64e1ed0e380df99c4a613706f903eb6e

Force using node from vaadin home folder (#7605) Fixes #7563

view details

caalador

commit sha 802760793086f42f75868dc681e06dc89ab31ca4

Accept a flow-build-info (#7607) Even when we are running from inside a jar if the paren jar doesn't contain a flow-build-info we should accept a found build info and log that we can't be certain that this is the correct file. Fixes #7579

view details

Denis

commit sha bfff1c3f055cf18f202e87a614464095dd03f0f2

Update attribute value on attach (#7627) * Fix the bug * Add IT tests for re-attaching a stream resource Fixes #6478

view details

Denis

commit sha d325ab408add75e8fbe323381f83f44f97464be1

Disable failing on CI test and improve expected exception checks (#7629)

view details

caalador

commit sha e14fdfb9b9a9b71d31418a971046398271169cdf

Fix test on windows. (#7630) Windows node executable is node.exe

view details

Haijian Wang

commit sha d6b7b41022a815e00afb3b8afe7b0d4b81cea098

Remove polymer from default dependencies (#7558)

view details

Manuel Carrasco Moñino

commit sha c5e9c95f9fd19bf114b752f215438c02786003e2

CCDM: do not override tsconfig when index.ts is generated (#7621) * CCDM: do not override tsconfig if it exists but there is no custom index.ts file Fixes #7532 * simplify tsconfig generation condition * fix tests

view details

Mehdi Javan

commit sha 6f5b5d0bc4ed371b07e27a3423e085ecd7d28897

Read proxy config from .npmrc file (#7625) * Read proxy config from .npmrc file, system properties, and environment variables

view details

Haijian Wang

commit sha bd671f120717738ebb3118afd0c2ce834b2b30e6

Revert "Remove polymer from default dependencies (#7558)" (#7640)

view details

Manuel Carrasco Moñino

commit sha d64e8a79031199973d453b347082a6d5fe5eb78f

Update chrome version for intern test in flow-client module (#7645) * chore: fail when chrome-driver version is not correctly set * chore: update chrome driver version in flow-client

view details

Thanh Dat PHAN

commit sha e0c85bead82b53d9792cb15dc994787527f544b1

generate types.d.ts file at starter to ignore import css modules errors (#7637)

view details

Leif Åstrand

commit sha bfcade633c1f8c788d9f1e8ae87ed475cd8ba92c

Clarify that the version number if for Flow and not Vaadin (#7641)

view details

caalador

commit sha 08893636a5df88217028f4ebd4fdf25382880b6e

Add logging for node install (#7635) Add logging for when we are automatically installing node and where it is installed. Part of #6249

view details

Johannes Eriksson

commit sha 9a51acd12131d137a49c0d374e131f3912bfb53c

Removed org.apache.commons.text dependency (#7599)

view details

Denis

commit sha 01d52df05c7cd55eca1bf18c8ab7de2f1297d6c8

Don't block DevModeInitializer but spawn a thread where all long running tasks are executed (#7647) * Run (p)npm install and webpack dev server in a separate thread without blocking servlet container initializer * Read a file from the classpath instead of hardcoding the content. * Update unit tests and rewrite exception throwing. * Fix pnpm unit test in case of globally installed pnpm. * Update ITs to wait until dev server is started * Correct waitForDevServer and add javadocs for dev mode handler CTOR * Disable flow-client tests which are broken. * Use the correct waitForDevServer method impl * Use find() instead of match() * Correct log message in the dev mode handler and startup performance test * Fix SQ complains. * Don't throw an exception on getCause but just return it * Check that an exception in the prepare tasks ((p)npm install) is rethrown on request handling. * Schedule page reload without onload * Don't remove node_modules if pnpm is enabled and it's downloading resources.

view details

Mehdi Javan

commit sha 1d92ac34740ff94747e4a7df162ba9fa4591a402

Fix problem with multiple listenOns of ShortcutRegisteration (#7638) * Fix problem with multiple listenOns of ShortcutRegisteration * Add exceptions for duplicate and null components in listenOn components

view details

Denis

commit sha 15673e022d9c6131e3c666160755e306d1772a36

Revert "Don't block DevModeInitializer but spawn a thread where all long running tasks are executed (#7647)" (#7661) This reverts commit 01d52df05c7cd55eca1bf18c8ab7de2f1297d6c8.

view details

Haijian Wang

commit sha 0c6a4ceef1ef79d725f3c7ef09dcc316d0f3af9e

Update master to 3.1-SNAPSHOT (#7670) * Update master to 3.1-SNAPSHOT

view details

Manuel Carrasco Moñino

commit sha e2e57ccd1b2c7b00f6b4c3bf278befe7b2182eb5

prevent that MPR routes modify the hash fragment - Routing based on hash fragment was executing code in browser that causes firing client side routing breaking the UI. - This PR introspects the V7 UIDL in order to replace 'window.location.hash' assignation with new API 'window.history.pushState'. Fixes #7540

view details

push time in 13 days

push eventjhult/karibu-dsl

Martin Vysny

commit sha 47757ac0af76cd037a183103809c521fa10cad73

Merge pull request #20 from jhult/master Version bumps and tab label

view details

Martin Vysny

commit sha a0e930e89d016bf8333ab69bcd2642cb5e9ac21a

gradle v bump

view details

Martin Vysny

commit sha 9a5ce7f9de02877e3b01606147400e1b10732977

vaadin v bump

view details

Martin Vysny

commit sha 7c1341340ef4da989f26203e884c8685ecfd3fdc

v bump

view details

Martin Vysny

commit sha 68a56ac0f00f6238ddbc2cfbc0c75279646e0f71

v bump

view details

Martin Vysny

commit sha 8ce54c4ab175f058bcb75de9bac100847125663d

0.7.1

view details

Martin Vysny

commit sha b7073fad69a19899919b056e6e3c0e66ff8c0702

0.7.2-SNAPSHOT

view details

Martin Vysny

commit sha d8f3286764e9ae45bcd47fd49987b6f49b65d63f

Replaced logback with slf4j-simple

view details

Martin Vysny

commit sha 5396c1a31a3fca3d2c0f39da4ffa7e45c7b92909

v bump

view details

Martin Vysny

commit sha 3b8ffa563a7e71055499b5d081e0f101bbb05c45

v bump

view details

Martin Vysny

commit sha 44d66cfe5e3acec2897935f95b817926781e1ea9

v bump

view details

Martin Vysny

commit sha 4bd7db18b94c147f768c3f71eb115ca2564591bd

readme

view details

Martin Vysny

commit sha cb35eba725732f5da6a712acb99d9266ba2f9ddb

v bump

view details

Martin Vysny

commit sha febe7390352998e56410c58e8dca76d65e6c1974

v bump

view details

Martin Vysny

commit sha 4a7c139ba9e4f0e252ddae0762fe997c9fc2a01f

v bump

view details

Martin Vysny

commit sha 0a39fc0d86f9dd92b2699564e83ee7e306396b45

verticalLayout()/horizontalLayout() now accept isPadding/isSpacing params

view details

Martin Vysny

commit sha 286beb4059cd938f163721c8298ae4988b3a042d

formatting

view details

Martin Vysny

commit sha 311e92144173060ca1b0515db793f42bb33bde06

formatting

view details

Martin Vysny

commit sha 34e040de1d9bddfc0559d37c4baa552bd44db901

fix kdoc, add iconButton()

view details

Martin Vysny

commit sha 7cc3fc37ea9bec6ab96ebaebce88624367f18b7e

kdoc

view details

push time in 13 days

push eventjhult/vaadin-on-kotlin

Martin Vysny

commit sha e052e75ab366d654730dfcd4252fdc2285cccdd4

Merge pull request #41 from jhult/master Bump dependencies

view details

Martin Vysny

commit sha f99ead4c62a3eb22fb7f568cf00b724767e20880

v bump

view details

Martin Vysny

commit sha c4a90844ad2680e515b39dad3b67c4e0d3017e8d

v bump

view details

Martin Vysny

commit sha 53544ab4a35ff2aaf733aa1c7b912801bb7f11cd

docs: updated the databases docu to the new vokorm

view details

Martin Vysny

commit sha 3c2254ca1e1bd34ba93c039eb4e4d58c8f8c1f43

updated gettingstarted to new vok

view details

Martin Vysny

commit sha 95bc529ee7b086efa5355a6e4c8312f708b019a8

v bump

view details

Martin Vysny

commit sha c100db1a36f189f61701ee6585bcff6a1663e320

Drop support for Vaadin 14 compat mode

view details

Martin Vysny

commit sha 724d753bfac65b889dc10c584cb2e28c0d6b75f4

Fixed heroku deploy issue

view details

Martin Vysny

commit sha 34a3d5b88e2e25c273df36f5c72a9d0a9bdad741

minor

view details

Martin Vysny

commit sha 83e07a0c71bdfa37e07da2ba0a506514fd788422

minor

view details

Martin Vysny

commit sha d5a1f795aa64a3a2939f215e76e382bbefbe4bf1

Initial filter port to builder pattern

view details

Martin Vysny

commit sha 5b26effdfe10b624a8dd67ac2f8a5d77be8b7690

Removed old autogenerating FilterRow; new FilterBar prototype implemented

view details

Martin Vysny

commit sha 0fb6304cc37549d036f10a3c83205cf52ce11070

Add FilterBarTest

view details

Martin Vysny

commit sha 2c3f54de3a45a476bf8f38b0cfeb1cb3f8f0a02c

minor

view details

Martin Vysny

commit sha d4b29354b0a609bb05efb77c152aee3f5ab1278c

Fixed tests

view details

Martin Vysny

commit sha cb42ea57f138ea78bdc58c33114a7357517d7860

v bump

view details

Martin Vysny

commit sha 7be6b3b269b15b2de8de2ebb144e867327fc1171

v bump

view details

Martin Vysny

commit sha 5b322a769fe0535ff160db6da519e697af057cde

Added docs on FilterBar

view details

Martin Vysny

commit sha 4dd3ff3d23ddf029230a3bec5d1cfa7dc2265d78

fixed compiler error

view details

Martin Vysny

commit sha 3ed8030d953bb904a34beed284c0a8b1731e292d

Fixed kdoc

view details

push time in 13 days

delete branch jhult/vaadin-on-kotlin

delete branch : vaadin8experiment

delete time in 13 days

delete branch jhult/vaadin-on-kotlin

delete branch : vaadin7

delete time in 13 days

delete branch jhult/vaadin-on-kotlin

delete branch : javalin-3.0.0.alpha0

delete time in 13 days

push eventjhult/vaadin-on-kotlin

Jonathan Hult

commit sha 9b80021da8f573ae30570d214bc65984b1e09122

Fix KDoc for VOKPlugin which mentions old package

view details

push time in 13 days

startedIBM/kui

started time in 14 days

startedstdlib-js/stdlib

started time in 15 days

startedcameronsenese/oke-hashicorp-vault-tutorial

started time in 15 days

startedcameronsenese/oke-go

started time in 15 days

startedcameronsenese/oci-usage-to-adw-function

started time in 15 days

startedcameronsenese/oci-usage-to-adw-function

started time in 15 days

startedabhirockzz/oracle-functions-oci-object-store

started time in 15 days

startedrosalexander/oci-object-storage-desktop

started time in 15 days

startedabhirockzz/fn-java-sdk-invoke

started time in 15 days

startedremkop/picocli

started time in 15 days

startedsblack4/ATPJava

started time in 15 days

startedabhirockzz/oci-user-management-util

started time in 15 days

startedrecursivecodes/oci-adb-jdbc-java-secrets

started time in 15 days

startedrecursivecodes/oci-custom-metrics

started time in 15 days

startedFiloSottile/age

started time in 16 days

startedkeys-pub/keys

started time in 16 days

startedpentaho/pentaho-kettle

started time in 16 days

startedsquare/moshi

started time in 18 days

startedgoogle/gson

started time in 18 days

issue commentcosmocode/dokuwiki-plugin-oauth

Login with Keycloak 10.0.0 does not work

FYI, here are the related Keycloak links:

  • Issue: https://issues.redhat.com/browse/KEYCLOAK-8071
  • Pull Request: https://github.com/keycloak/keycloak/pull/6943
YoitoFes

comment created time in 21 days

issue commentvert-x3/vertx-web

redirect_uri sometimes includes host which leads to path must start with '/' exception

This happens using Keycloak (connected to Office 365).

I believe I only encountered this when the SessionHandler was missing (my mistake). However, I'm not sure it should fail in this manner.

jhult

comment created time in 22 days

startedsparkle-project/Sparkle

started time in 24 days

startedalfeugds/jiraworklogtool

started time in 25 days

startedqemu/qemu

started time in a month

startedClipy/Clipy

started time in a month

push eventteamatldocker/confluence

Jonathan Hult

commit sha 12d704e7c3a9290716bd2d8feb7e0af3f50c777d

Fix SSLPoke.class URL

view details

push time in a month

startedmeetecho/janus-gateway

started time in a month

startedversatica/mediasoup

started time in a month

startedhavfo/multiparty-meeting

started time in a month

push eventteamatldocker/jira

Jonathan Hult

commit sha 7c6fcbb4a2340c509d6bd14fb6597c224f65dbdf

Jira 8.8.1 and Service Desk 4.8.1

view details

push time in a month

push eventteamatldocker/confluence

Jonathan Hult

commit sha a327ada729665f3b35e680e30b49ada0ce65f4cd

7.4.0

view details

push time in a month

startedAtlassianPS/JiraPS

started time in a month

startedJigsaw-Code/outline-client

started time in a month

delete branch jhult/alfred-jira

delete branch : develop

delete time in a month

startedivoronin/ArchiveMounter

started time in a month

delete branch jhult/flow

delete branch : 6617-dataprovider-accept-subclasses

delete time in a month

startedcopper-engine/copper-engine

started time in a month

starteddirectus/api

started time in a month

startedNetflix/conductor

started time in a month

startedSonarSource/sonarqube

started time in a month

startedtreasure-data/digdag

started time in a month

startednextflow-io/nextflow

started time in a month

startedcreactiviti/piper

started time in a month

startedmikub/titanoboa

started time in a month

startedmeirwah/awesome-workflow-engines

started time in a month

startedPrefectHQ/prefect

started time in a month

startedmumble-voip/mumble

started time in a month

startedapache/servicecomb-java-chassis

started time in a month

startedannahosanna/vertx-servlet-interface

started time in a month

startedrelvaner/vertx-web-proxy

started time in a month

startedhome-assistant/core

started time in a month

startedhome-assistant/home-assistant.io

started time in a month

startedalpas/alpas

started time in a month

startedhexagonkt/hexagon

started time in a month

startedvert-x3/vertx-lang-kotlin

started time in a month

startedjooby-project/jooby

started time in a month

startedtailscale/tailscale

started time in a month

push eventteamatldocker/confluence

Jonathan Hult

commit sha 343752ad635ab719cbd2970878ac521556b5e55c

7.3.5

view details

push time in 2 months

startedvert-x3/vertx-web

started time in 2 months

issue openedvert-x3/vertx-web

redirect_uri sometimes includes host which leads to path must start with '/' exception

This might belong in this repository instead: vert-x3/vertx-auth.

Version

current master - commit 83f7d24ab3d58cd4036772fe3c7244ace5c91e2c

Context

I am trying to use an OAuth2AuthHandler. I am receiving an IllegalArgumentException with path must start with '/'.

Do you have a reproducer?

No

Steps to reproduce

  1. Create an AuthenticationHandler:
OAuth2AuthHandler
.create(vertx, authProvider, "http://localhost:8080/login/callback")
.setupCallback(router.get("/login/callback"));
  1. Add the AuthenticationHandler to all routes.
  2. Try to navigate to a URL and get routed to the login.
  3. Upon successful login, the callback sets redirect_uri (including the host) and then tries to call reroute. This causes an IllegalArgumentException with path must start with '/'.

Stack trace

java.lang.IllegalArgumentException: path must start with '/'
	at io.vertx.ext.web.impl.RoutingContextImpl.reroute(RoutingContextImpl.java:359) ~[vertx-web-master-4.0.0-milestone2-g83f7d24-262.jar:4.0.0-SNAPSHOT]
	at io.vertx.ext.web.impl.RoutingContextWrapper.reroute(RoutingContextWrapper.java:275) ~[vertx-web-master-4.0.0-milestone2-g83f7d24-262.jar:4.0.0-SNAPSHOT]
	at io.vertx.ext.web.RoutingContext.reroute(RoutingContext.java:437) ~[vertx-web-master-4.0.0-milestone2-g83f7d24-262.jar:4.0.0-SNAPSHOT]
	at io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl.lambda$null$2(OAuth2AuthHandlerImpl.java:263) ~[vertx-web-master-4.0.0-milestone2-g83f7d24-262.jar:4.0.0-SNAPSHOT]
	at io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl$$Lambda$378.0000000000000000.handle(Unknown Source) ~[?:?]
	at io.vertx.ext.auth.oauth2.impl.OAuth2AuthProviderImpl.validateUser(OAuth2AuthProviderImpl.java:394) ~[vertx-auth-oauth2-master-4.0.0-milestone4-g49fa403-90.jar:4.0.0-SNAPSHOT]
	at io.vertx.ext.auth.oauth2.impl.OAuth2AuthProviderImpl.lambda$authenticate$2(OAuth2AuthProviderImpl.java:223) ~[vertx-auth-oauth2-master-4.0.0-milestone4-g49fa403-90.jar:4.0.0-SNAPSHOT]
	at io.vertx.ext.auth.oauth2.impl.OAuth2AuthProviderImpl$$Lambda$304.00000000BC3C0420.handle(Unknown Source) ~[?:?]
	at io.vertx.ext.auth.oauth2.impl.OAuth2API.lambda$token$1(OAuth2API.java:221) ~[vertx-auth-oauth2-master-4.0.0-milestone4-g49fa403-90.jar:4.0.0-SNAPSHOT]
	at io.vertx.ext.auth.oauth2.impl.OAuth2API$$Lambda$305.00000000BC2B0020.handle(Unknown Source) ~[?:?]
	at io.vertx.ext.auth.oauth2.impl.OAuth2API.lambda$null$6(OAuth2API.java:563) ~[vertx-auth-oauth2-master-4.0.0-milestone4-g49fa403-90.jar:4.0.0-SNAPSHOT]
	at io.vertx.ext.auth.oauth2.impl.OAuth2API$$Lambda$344.00000000BDB1D620.handle(Unknown Source) ~[?:?]
	at io.vertx.core.impl.FutureImpl.doDispatch(FutureImpl.java:127) ~[vertx-core-4.0.0-20200402.151446-333.jar:4.0.0-SNAPSHOT]
	at io.vertx.core.impl.FutureImpl.dispatch(FutureImpl.java:119) ~[vertx-core-4.0.0-20200402.151446-333.jar:4.0.0-SNAPSHOT]
	at io.vertx.core.impl.FutureImpl.tryComplete(FutureImpl.java:149) ~[vertx-core-4.0.0-20200402.151446-333.jar:4.0.0-SNAPSHOT]
	at io.vertx.core.http.impl.HttpClientResponseImpl$BodyHandler.handleEnd(HttpClientResponseImpl.java:280) ~[vertx-core-4.0.0-20200402.151446-333.jar:4.0.0-SNAPSHOT]
	at io.vertx.core.http.impl.HttpClientResponseImpl$$Lambda$346.00000000BDB1EC20.handle(Unknown Source) ~[?:?]
	at io.vertx.core.impl.AbstractContext.emit(AbstractContext.java:181) ~[vertx-core-4.0.0-20200402.151446-333.jar:4.0.0-SNAPSHOT]
	at io.vertx.core.impl.AbstractContext.emit(AbstractContext.java:99) ~[vertx-core-4.0.0-20200402.151446-333.jar:4.0.0-SNAPSHOT]
	at io.vertx.core.http.impl.HttpClientResponseImpl.handleEnd(HttpClientResponseImpl.java:230) ~[vertx-core-4.0.0-20200402.151446-333.jar:4.0.0-SNAPSHOT]
	at io.vertx.core.http.impl.Http1xClientConnection$StreamImpl.lambda$handleBegin$3(Http1xClientConnection.java:449) ~[vertx-core-4.0.0-20200402.151446-333.jar:4.0.0-SNAPSHOT]
	at io.vertx.core.http.impl.Http1xClientConnection$StreamImpl$$Lambda$343.00000000BDB1D020.handle(Unknown Source) ~[?:?]
	at io.vertx.core.streams.impl.InboundBuffer.handleEvent(InboundBuffer.java:240) ~[vertx-core-4.0.0-20200402.151446-333.jar:4.0.0-SNAPSHOT]
	at io.vertx.core.streams.impl.InboundBuffer.write(InboundBuffer.java:130) ~[vertx-core-4.0.0-20200402.151446-333.jar:4.0.0-SNAPSHOT]
	at io.vertx.core.http.impl.Http1xClientConnection$StreamImpl.handleEnd(Http1xClientConnection.java:464) ~[vertx-core-4.0.0-20200402.151446-333.jar:4.0.0-SNAPSHOT]
	at io.vertx.core.http.impl.Http1xClientConnection$$Lambda$348.00000000BDB23A20.handle(Unknown Source) ~[?:?]
	at io.vertx.core.impl.EventLoopContext.schedule(EventLoopContext.java:58) [vertx-core-4.0.0-20200402.151446-333.jar:4.0.0-SNAPSHOT]
	at io.vertx.core.impl.EventLoopContext$Duplicated.schedule(EventLoopContext.java:120) [vertx-core-4.0.0-20200402.151446-333.jar:4.0.0-SNAPSHOT]
	at io.vertx.core.http.impl.Http1xClientConnection.handleResponseEnd(Http1xClientConnection.java:667) [vertx-core-4.0.0-20200402.151446-333.jar:4.0.0-SNAPSHOT]
	at io.vertx.core.http.impl.Http1xClientConnection.handleHttpMessage(Http1xClientConnection.java:532) [vertx-core-4.0.0-20200402.151446-333.jar:4.0.0-SNAPSHOT]
	at io.vertx.core.http.impl.Http1xClientConnection.handleMessage(Http1xClientConnection.java:507) [vertx-core-4.0.0-20200402.151446-333.jar:4.0.0-SNAPSHOT]
	at io.vertx.core.net.impl.ConnectionBase.read(ConnectionBase.java:116) [vertx-core-4.0.0-20200402.151446-333.jar:4.0.0-SNAPSHOT]
	at io.vertx.core.net.impl.VertxHandler.channelRead(VertxHandler.java:156) [vertx-core-4.0.0-20200402.151446-333.jar:4.0.0-SNAPSHOT]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) [netty-transport-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:321) [netty-codec-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:295) [netty-codec-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) [netty-transport-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1486) [netty-handler-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1235) [netty-handler-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1282) [netty-handler-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:498) [netty-codec-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:437) [netty-codec-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:276) [netty-codec-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) [netty-transport-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) [netty-transport-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163) [netty-transport-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:714) [netty-transport-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:650) [netty-transport-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:576) [netty-transport-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493) [netty-transport-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) [netty-common-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.48.Final.jar:4.1.48.Final]
	at java.lang.Thread.run(Thread.java:831) [?:?]
05 Apr 15:11:41 [TRACE] managedservices.portal.app.core._ErrorHandlers#setErrorParameter - exit with (500)

created time in 2 months

startedjitsi/jitsi-meet-electron

started time in 2 months

startedpion/webrtc

started time in 2 months

more