Julio Vilmar Gesser created MEECROWAVE-183:
----------------------------------------------

             Summary: OAuth2TokenService generated jwt does not include issuer 
and causes NPE
                 Key: MEECROWAVE-183
                 URL: https://issues.apache.org/jira/browse/MEECROWAVE-183
             Project: Meecrowave
          Issue Type: Bug
    Affects Versions: 1.2.5, 1.2.6
            Reporter: Julio Vilmar Gesser


When using the OAuth2TokenService (oauth2/token) to generate a token in the JWT 
format it is generated without the issuer field.

There is no configuration to define a issuer string to be used. The lack of the 
issuer in the token causes a NPE when using the token to authenticate (see 
stack trace at the end).

I tried to find a way to provide the issuer, but I couldn't.

if OAuth2Configurer allowed me to define a custom AbstractOAuthDataProvider I 
would override the method createNewAccessToken and set the issuer. But 
unfortunately the it is not possible yet. I thin this option interesting 
besides the bug I am reporting because would bring more flexibility.

But any way, should be a way to define the issuer.

 

The stacktrace of the problem:

java.lang.NullPointerException: no mapping for iss
 at 
org.apache.johnzon.core.JsonObjectImpl.valueOrExcpetion(JsonObjectImpl.java:49) 
~[johnzon-core-1.1.10.jar:1.1.10]
 at org.apache.johnzon.core.JsonObjectImpl.getString(JsonObjectImpl.java:82) 
~[johnzon-core-1.1.10.jar:1.1.10]
 at 
org.apache.geronimo.microprofile.impl.jwtauth.jwt.JwtParser.lambda$parse$0(JwtParser.java:93)
 ~[geronimo-jwt-auth-1.0.1.jar:1.0.1]
 at java.util.stream.MatchOps$1MatchSink.accept(MatchOps.java:90) ~[?:1.8.0_181]
 at java.util.HashMap$KeySpliterator.tryAdvance(HashMap.java:1574) 
~[?:1.8.0_181]
 at 
java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)
 ~[?:1.8.0_181]
 at 
java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:498) 
~[?:1.8.0_181]
 at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:485) 
~[?:1.8.0_181]
 at 
java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) 
~[?:1.8.0_181]
 at java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:230) 
~[?:1.8.0_181]
 at java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:196) 
~[?:1.8.0_181]
 at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) 
~[?:1.8.0_181]
 at java.util.stream.ReferencePipeline.noneMatch(ReferencePipeline.java:459) 
~[?:1.8.0_181]
 at 
org.apache.geronimo.microprofile.impl.jwtauth.jwt.JwtParser.parse(JwtParser.java:93)
 ~[geronimo-jwt-auth-1.0.1.jar:1.0.1]
 at 
org.apache.geronimo.microprofile.impl.jwtauth.jwt.JwtParser$$OwbNormalScopeProxy0.parse(org/apache/geronimo/microprofile/impl/jwtauth/jwt/JwtParser.java)
 ~[?:1.0.1]
 at 
org.apache.geronimo.microprofile.impl.jwtauth.servlet.JwtRequest.lambda$new$0(JwtRequest.java:62)
 ~[geronimo-jwt-auth-1.0.1.jar:1.0.1]
 at 
org.apache.geronimo.microprofile.impl.jwtauth.servlet.JwtRequest.getUserPrincipal(JwtRequest.java:93)
 ~[geronimo-jwt-auth-1.0.1.jar:1.0.1]
 at 
javax.servlet.http.HttpServletRequestWrapper.getUserPrincipal(HttpServletRequestWrapper.java:196)
 ~[meecrowave-specs-api-1.2.6.jar:1.2.6]
 at 
org.apache.cxf.transport.http.AbstractHTTPDestination$2.getUserPrincipal(AbstractHTTPDestination.java:392)
 ~[cxf-rt-transports-http-3.3.0.jar:3.3.0]
 at 
org.apache.cxf.transport.http.AbstractHTTPDestination.getAuthorizationPolicyFromMessage(AbstractHTTPDestination.java:206)
 ~[cxf-rt-transports-http-3.3.0.jar:3.3.0]
 at 
org.apache.cxf.transport.http.AbstractHTTPDestination.setupMessage(AbstractHTTPDestination.java:405)
 ~[cxf-rt-transports-http-3.3.0.jar:3.3.0]
 at 
org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:252)
 ~[cxf-rt-transports-http-3.3.0.jar:3.3.0]
 at 
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234)
 ~[cxf-rt-transports-http-3.3.0.jar:3.3.0]
 at 
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208)
 ~[cxf-rt-transports-http-3.3.0.jar:3.3.0]
 at 
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160)
 ~[cxf-rt-transports-http-3.3.0.jar:3.3.0]
 at 
org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:216)
 ~[cxf-rt-transports-http-3.3.0.jar:3.3.0]
 at 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:301)
 ~[cxf-rt-transports-http-3.3.0.jar:3.3.0]
 at 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:225)
 ~[cxf-rt-transports-http-3.3.0.jar:3.3.0]
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:634) 
~[meecrowave-specs-api-1.2.6.jar:1.2.6]
 at 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:276)
 ~[cxf-rt-transports-http-3.3.0.jar:3.3.0]
 at 
org.apache.meecrowave.cxf.CxfCdiAutoSetup$1.doFilter(CxfCdiAutoSetup.java:121) 
~[meecrowave-core-1.2.6.jar:1.2.6]
 at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
 ~[tomcat-catalina-9.0.14.jar:9.0.14]
 at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
 ~[tomcat-catalina-9.0.14.jar:9.0.14]
 at 
org.apache.geronimo.microprofile.opentracing.common.microprofile.server.OpenTracingFilter.doFilter(OpenTracingFilter.java:157)
 ~[geronimo-opentracing-common-1.0.1.jar:1.0.1]
 at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
 ~[tomcat-catalina-9.0.14.jar:9.0.14]
 at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
 ~[tomcat-catalina-9.0.14.jar:9.0.14]
 at 
org.apache.geronimo.microprofile.impl.jwtauth.servlet.GeronimoJwtAuthFilter.lambda$doFilter$3(GeronimoJwtAuthFilter.java:83)
 ~[geronimo-jwt-auth-1.0.1.jar:1.0.1]
 at 
org.apache.geronimo.microprofile.impl.jwtauth.cdi.GeronimoJwtAuthExtension.execute(GeronimoJwtAuthExtension.java:276)
 ~[geronimo-jwt-auth-1.0.1.jar:1.0.1]
 at 
org.apache.geronimo.microprofile.impl.jwtauth.cdi.GeronimoJwtAuthExtension$$OwbNormalScopeProxy0.execute(org/apache/geronimo/microprofile/impl/jwtauth/cdi/GeronimoJwtAuthExtension.java)
 ~[?:1.0.1]
 at 
org.apache.geronimo.microprofile.impl.jwtauth.servlet.GeronimoJwtAuthFilter.doFilter(GeronimoJwtAuthFilter.java:83)
 ~[geronimo-jwt-auth-1.0.1.jar:1.0.1]
 at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
 ~[tomcat-catalina-9.0.14.jar:9.0.14]
 at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
 ~[tomcat-catalina-9.0.14.jar:9.0.14]
 at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
 [tomcat-catalina-9.0.14.jar:9.0.14]
 at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
 [tomcat-catalina-9.0.14.jar:9.0.14]
 at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
 [tomcat-catalina-9.0.14.jar:9.0.14]
 at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) 
[tomcat-catalina-9.0.14.jar:9.0.14]
 at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) 
[tomcat-catalina-9.0.14.jar:9.0.14]
 at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
 [tomcat-catalina-9.0.14.jar:9.0.14]
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) 
[tomcat-catalina-9.0.14.jar:9.0.14]
 at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408) 
[tomcat-coyote-9.0.14.jar:9.0.14]
 at 
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
 [tomcat-coyote-9.0.14.jar:9.0.14]
 at 
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:834)
 [tomcat-coyote-9.0.14.jar:9.0.14]
 at 
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1417)
 [tomcat-coyote-9.0.14.jar:9.0.14]
 at 
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) 
[tomcat-coyote-9.0.14.jar:9.0.14]
 at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 
[?:1.8.0_181]
 at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 
[?:1.8.0_181]
 at 
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
 [tomcat-util-9.0.14.jar:9.0.14]
 at java.lang.Thread.run(Thread.java:748) [?:1.8.0_181]



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to