I couldn't scope it because otherwise couldn't return null
On 07/12/2017 09:55, Romain Manni-Bucau wrote:
if you scope this producer you would have a lazy instance and in the context of the timer you wouldnt call it so you wouldnt have this NPE Romain Manni-Bucau @rmannibucau | Blog | Old Blog | Github | LinkedIn 2017-12-07 9:49 GMT+01:00 Matthew Broadhead <[email protected]>:i have this method to @Produces KeycloakSecurityContext @Produces @Default @Dependent public KeycloakSecurityContext keycloakSecurityContext() { try { if (httpServletRequest instanceof KeycloakPrincipal) { KeycloakPrincipal<KeycloakSecurityContext> keycloakPrincipal = (KeycloakPrincipal<KeycloakSecurityContext>) httpServletRequest .getUserPrincipal(); return keycloakPrincipal.getKeycloakSecurityContext(); } } catch (NullPointerException e) { // e.printStackTrace(); } return null; } i added catch the NullPointerException because httpServletRequest causes an NPE if the KeycloakSecurityContext is injected into an @ApplicationScoped where it has been run from a timer and there is no servlet request. there is no way to null check the httpServletRequest as it blows up behind the scenes is this the right way to do it or is there another way to detect there is no request?
