You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by fm...@apache.org on 2013/12/23 20:17:32 UTC

svn commit: r1553188 - in /chemistry/opencmis/trunk: chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/ chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/o...

Author: fmui
Date: Mon Dec 23 19:17:32 2013
New Revision: 1553188

URL: http://svn.apache.org/r1553188
Log:
added simple OAuth 2.0 breaker token support to standard authentication provider

Modified:
    chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/AbstractAuthenticationProvider.java
    chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/StandardAuthenticationProvider.java
    chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/SessionParameter.java

Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/AbstractAuthenticationProvider.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/AbstractAuthenticationProvider.java?rev=1553188&r1=1553187&r2=1553188&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/AbstractAuthenticationProvider.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/AbstractAuthenticationProvider.java Mon Dec 23 19:17:32 2013
@@ -77,7 +77,7 @@ public abstract class AbstractAuthentica
     /**
      * Gets the user name from the session.
      * 
-     * @return the user name or <code>null</code> if the user name is not set
+     * @return the user name or {@code null} if the user name is not set
      */
     protected String getUser() {
         Object userObject = getSession().get(SessionParameter.USER);
@@ -91,7 +91,7 @@ public abstract class AbstractAuthentica
     /**
      * Gets the password from the session.
      * 
-     * @return the password or <code>null</code> if the password is not set
+     * @return the password or {@code null} if the password is not set
      */
     protected String getPassword() {
         Object passwordObject = getSession().get(SessionParameter.PASSWORD);
@@ -103,10 +103,23 @@ public abstract class AbstractAuthentica
     }
 
     /**
+     * Gets the bearer token from the session.
+     * 
+     * @return the bearer token or {@code null} if the token is not set
+     */
+    protected String getBearerToken() {
+        Object tokenObject = getSession().get(SessionParameter.BREARER_TOKEN);
+        if (tokenObject instanceof String) {
+            return (String) tokenObject;
+        }
+
+        return null;
+    }
+
+    /**
      * Gets the proxy user name from the session.
      * 
-     * @return the proxy user name or <code>null</code> if the user name is not
-     *         set
+     * @return the proxy user name or {@code null} if the user name is not set
      */
     protected String getProxyUser() {
         Object userObject = getSession().get(SessionParameter.PROXY_USER);
@@ -120,8 +133,7 @@ public abstract class AbstractAuthentica
     /**
      * Gets the proxy password from the session.
      * 
-     * @return the proxy password or <code>null</code> if the password is not
-     *         set
+     * @return the proxy password or {@code null} if the password is not set
      */
     protected String getProxyPassword() {
         Object passwordObject = getSession().get(SessionParameter.PROXY_PASSWORD);

Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/StandardAuthenticationProvider.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/StandardAuthenticationProvider.java?rev=1553188&r1=1553187&r2=1553188&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/StandardAuthenticationProvider.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/StandardAuthenticationProvider.java Mon Dec 23 19:17:32 2013
@@ -72,6 +72,18 @@ public class StandardAuthenticationProvi
             }
         }
 
+        boolean sendBearerToken = getSendBearerToken();
+
+        // send bearer token
+        if (sendBearerToken) {
+            String token = getBearerToken();
+
+            // if no token is set, don't set bearer header
+            if (token != null) {
+                fixedHeaders.put("Authorization", Collections.singletonList("Bearer " + token));
+            }
+        }
+
         // proxy authentication
         if (getProxyUser() != null) {
             // get proxy user and password
@@ -230,6 +242,13 @@ public class StandardAuthenticationProvi
     }
 
     /**
+     * Returns if an OAuth Bearer token header should be sent. (All bindings.)
+     */
+    protected boolean getSendBearerToken() {
+        return isTrue(SessionParameter.AUTH_OAUTH_BEARER);
+    }
+
+    /**
      * Returns if a UsernameToken should be sent. (Web Services binding only.)
      */
     protected boolean getSendUsernameToken() {

Modified: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/SessionParameter.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/SessionParameter.java?rev=1553188&r1=1553187&r2=1553188&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/SessionParameter.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/SessionParameter.java Mon Dec 23 19:17:32 2013
@@ -500,6 +500,7 @@ public final class SessionParameter {
     // ---- general parameter ----
     public static final String USER = "org.apache.chemistry.opencmis.user";
     public static final String PASSWORD = "org.apache.chemistry.opencmis.password";
+    public static final String BREARER_TOKEN = "org.apache.chemistry.opencmis.oauth.brearertoken";
 
     // --- binding parameter ----
     /** Predefined binding types (see {@code BindingType}). */
@@ -562,6 +563,12 @@ public final class SessionParameter {
     public static final String AUTH_HTTP_BASIC = "org.apache.chemistry.opencmis.binding.auth.http.basic";
 
     /**
+     * Toggle for OAuth Bearer token authentication. Evaluated by the standard
+     * authentication provider.
+     */
+    public static final String AUTH_OAUTH_BEARER = "org.apache.chemistry.opencmis.binding.auth.http.oauth.bearer";
+
+    /**
      * Toggle for WS-Security UsernameToken authentication. Evaluated by the
      * standard authentication provider.
      */