You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by rm...@apache.org on 2020/11/10 18:08:49 UTC

[openwebbeans-meecrowave] branch master updated: ensure oauth2 module can run in classloader proxy mode

This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openwebbeans-meecrowave.git


The following commit(s) were added to refs/heads/master by this push:
     new 7be5036  ensure oauth2 module can run in classloader proxy mode
7be5036 is described below

commit 7be50368035c8d14266e9441397349b45d166ad3
Author: Romain Manni-Bucau <rm...@gmail.com>
AuthorDate: Tue Nov 10 19:08:44 2020 +0100

    ensure oauth2 module can run in classloader proxy mode
---
 .../OAuth2AuthorizationCodeGrantService.java       | 50 +++++++++++-----------
 .../oauth2/resource/OAuth2RevokeTokenService.java  |  2 +-
 .../oauth2/resource/OAuth2TokenService.java        |  2 +-
 3 files changed, 28 insertions(+), 26 deletions(-)

diff --git a/meecrowave-oauth2-minimal/src/main/java/org/apache/meecrowave/oauth2/resource/OAuth2AuthorizationCodeGrantService.java b/meecrowave-oauth2-minimal/src/main/java/org/apache/meecrowave/oauth2/resource/OAuth2AuthorizationCodeGrantService.java
index 536f322..f8a2e76 100644
--- a/meecrowave-oauth2-minimal/src/main/java/org/apache/meecrowave/oauth2/resource/OAuth2AuthorizationCodeGrantService.java
+++ b/meecrowave-oauth2-minimal/src/main/java/org/apache/meecrowave/oauth2/resource/OAuth2AuthorizationCodeGrantService.java
@@ -25,66 +25,68 @@ import org.apache.cxf.rs.security.oauth2.services.RedirectionBasedGrantService;
 import org.apache.cxf.security.SecurityContext;
 import org.apache.meecrowave.oauth2.configuration.OAuth2Configurer;
 
-import javax.enterprise.context.RequestScoped;
-import javax.enterprise.inject.Typed;
+import javax.enterprise.context.ApplicationScoped;
+import javax.enterprise.inject.Vetoed;
 import javax.inject.Inject;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.GET;
 import javax.ws.rs.POST;
 import javax.ws.rs.Path;
 import javax.ws.rs.Produces;
+import javax.ws.rs.core.Context;
 import javax.ws.rs.core.MultivaluedMap;
 import javax.ws.rs.core.Response;
 import java.security.Principal;
 
 import static javax.ws.rs.core.MediaType.APPLICATION_FORM_URLENCODED;
 import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
-import static javax.ws.rs.core.MediaType.APPLICATION_XHTML_XML;
 import static javax.ws.rs.core.MediaType.APPLICATION_XML;
 import static javax.ws.rs.core.MediaType.TEXT_HTML;
 
-@RequestScoped
+@ApplicationScoped
 @Path("authorize")
-public class OAuth2AuthorizationCodeGrantService extends AuthorizationCodeGrantService {
-
-    @Inject
-    private LazyImpl delegate;
-
+public class OAuth2AuthorizationCodeGrantService {
     @Inject
     private OAuth2Configurer configurer;
 
-    @Override
     @GET
-    @Produces({APPLICATION_XHTML_XML, TEXT_HTML, APPLICATION_XML, APPLICATION_JSON})
-    public Response authorize() {
-        return getDelegate().authorize();
+    @Produces({"application/xhtml+xml", TEXT_HTML, APPLICATION_XML, APPLICATION_JSON })
+    public Response authorize(@Context final MessageContext messageContext) {
+        return getDelegate(messageContext).authorize();
+    }
+
+    @POST
+    @Consumes(APPLICATION_FORM_URLENCODED)
+    @Produces({"application/xhtml+xml", TEXT_HTML, APPLICATION_XML, APPLICATION_JSON})
+    public Response authorizePost(final MultivaluedMap<String, String> params,
+                                  @Context final MessageContext messageContext) {
+        return getDelegate(messageContext).authorizePost(params);
     }
 
-    @Override
     @GET
     @Path("decision")
-    public Response authorizeDecision() {
-        return getDelegate().authorizeDecision();
+    public Response authorizeDecision(@Context final MessageContext messageContext) {
+        return getDelegate(messageContext).authorizeDecision();
     }
 
-    @Override
     @POST
     @Path("decision")
     @Consumes(APPLICATION_FORM_URLENCODED)
-    public Response authorizeDecisionForm(MultivaluedMap<String, String> params) {
-        return getDelegate().authorizeDecisionForm(params);
+    public Response authorizeDecisionForm(final MultivaluedMap<String, String> params,
+                                          @Context final MessageContext messageContext) {
+        return getDelegate(messageContext).authorizeDecisionForm(params);
     }
 
-    private RedirectionBasedGrantService getDelegate() {
-        delegate.setMessageContext(getMessageContext());
+    private RedirectionBasedGrantService getDelegate(final MessageContext messageContext) {
+        final LazyImpl delegate = new LazyImpl();
+        delegate.setMessageContext(messageContext);
         delegate.setConfigurer(configurer);
         configurer.accept(delegate);
         return delegate;
     }
 
-    @RequestScoped
-    @Typed(LazyImpl.class)
-    static class LazyImpl extends AuthorizationCodeGrantService {
+    @Vetoed
+    public static class LazyImpl extends AuthorizationCodeGrantService {
         private OAuth2Configurer configurer;
 
         public void setConfigurer(final OAuth2Configurer configurer) {
diff --git a/meecrowave-oauth2-minimal/src/main/java/org/apache/meecrowave/oauth2/resource/OAuth2RevokeTokenService.java b/meecrowave-oauth2-minimal/src/main/java/org/apache/meecrowave/oauth2/resource/OAuth2RevokeTokenService.java
index e804a49..c0930c0 100644
--- a/meecrowave-oauth2-minimal/src/main/java/org/apache/meecrowave/oauth2/resource/OAuth2RevokeTokenService.java
+++ b/meecrowave-oauth2-minimal/src/main/java/org/apache/meecrowave/oauth2/resource/OAuth2RevokeTokenService.java
@@ -63,7 +63,7 @@ public class OAuth2RevokeTokenService extends TokenRevocationService {
 
     @RequestScoped
     @Typed(LayImpl.class)
-    static class LayImpl extends TokenRevocationService implements OAuth2Application.Defaults {
+    public static class LayImpl extends TokenRevocationService implements OAuth2Application.Defaults {
         @Inject
         private OAuth2Configurer configurer;
 
diff --git a/meecrowave-oauth2-minimal/src/main/java/org/apache/meecrowave/oauth2/resource/OAuth2TokenService.java b/meecrowave-oauth2-minimal/src/main/java/org/apache/meecrowave/oauth2/resource/OAuth2TokenService.java
index 1c45f13..2b2f18b 100644
--- a/meecrowave-oauth2-minimal/src/main/java/org/apache/meecrowave/oauth2/resource/OAuth2TokenService.java
+++ b/meecrowave-oauth2-minimal/src/main/java/org/apache/meecrowave/oauth2/resource/OAuth2TokenService.java
@@ -62,7 +62,7 @@ public class OAuth2TokenService extends AccessTokenService implements OAuth2Appl
 
     @RequestScoped
     @Typed(LazyImpl.class)
-    static class LazyImpl extends AccessTokenService implements OAuth2Application.Defaults {
+    public static class LazyImpl extends AccessTokenService implements OAuth2Application.Defaults {
         @Inject
         private OAuth2Configurer configurer;