[jboss-svn-commits] JBL Code SVN: r32164 - in labs/jbossrules/trunk/drools-core/src: main/java/org/drools/io/impl and 2 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sun Mar 21 11:03:37 EDT 2010


Author: jervisliu
Date: 2010-03-21 11:03:36 -0400 (Sun, 21 Mar 2010)
New Revision: 32164

Modified:
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/agent/HttpClientImpl.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/agent/IHttpClient.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/agent/RuleAgent.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/agent/URLScanner.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/io/impl/UrlResource.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/agent/RuleAgentTest.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/agent/URLScannerTest.java
   labs/jbossrules/trunk/drools-core/src/test/resources/basic-authentication-sample-agent-config.properties
Log:
Fixed authentication token encoding problem in GUVNOR-133(Rules Agent provides access to all users' rules without authentication)

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/agent/HttpClientImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/agent/HttpClientImpl.java	2010-03-21 04:50:38 UTC (rev 32163)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/agent/HttpClientImpl.java	2010-03-21 15:03:36 UTC (rev 32164)
@@ -42,16 +42,21 @@
 
     }
 
-    public Package fetchPackage(URL url, String username, String password) throws IOException,
+    public Package fetchPackage(URL url, boolean enableBasicAuthentication, String username, String password) throws IOException,
                                         ClassNotFoundException {
         URLConnection con = url.openConnection();
         HttpURLConnection httpCon = (HttpURLConnection) con;
         try {
             httpCon.setRequestMethod( "GET" );
 
-        	Base64 enc = new Base64();
-            String userpassword = username + ":" + password;
-            httpCon.setRequestProperty("Authorization", "Basic " + enc.encode(userpassword.getBytes()));
+            if (enableBasicAuthentication) {
+				String userpassword = username + ":" + password;
+				byte[] authEncBytes = Base64.encodeBase64(userpassword
+						.getBytes());
+				httpCon.setRequestProperty("Authorization", "Basic "
+						+ new String(authEncBytes));
+			} 
+
             
             Object o = DroolsStreamUtils.streamIn( httpCon.getInputStream() );
 
@@ -71,7 +76,7 @@
 
         LastUpdatedPing ping = cl.checkLastUpdated( url );
 
-        Package p = cl.fetchPackage( url, null, null );
+        Package p = cl.fetchPackage( url, false, null, null );
 
         System.err.println( ping );
         System.err.println( ping.isError() );

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/agent/IHttpClient.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/agent/IHttpClient.java	2010-03-21 04:50:38 UTC (rev 32163)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/agent/IHttpClient.java	2010-03-21 15:03:36 UTC (rev 32164)
@@ -18,7 +18,7 @@
 
     public LastUpdatedPing checkLastUpdated(URL url) throws IOException;
 
-    public Package fetchPackage(URL url, String username, String password) throws IOException,
+    public Package fetchPackage(URL url, boolean enableBasicAuthentication, String username, String password) throws IOException,
                                         ClassNotFoundException;
 
 }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/agent/RuleAgent.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/agent/RuleAgent.java	2010-03-21 04:50:38 UTC (rev 32163)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/agent/RuleAgent.java	2010-03-21 15:03:36 UTC (rev 32164)
@@ -81,6 +81,7 @@
     public static final String    CONFIG_NAME       = "name";              //name is optional
     public static final String    USER_NAME       = "username"; 
     public static final String    PASSWORD       = "password"; 
+    public static final String    ENABLE_BASIC_AUTHENTICATION = "enableBasicAuthentication"; 
    
     //this is needed for cold starting when BRMS is down (ie only for URL).
     public static final String    LOCAL_URL_CACHE   = "localCacheDir";

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/agent/URLScanner.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/agent/URLScanner.java	2010-03-21 04:50:38 UTC (rev 32163)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/agent/URLScanner.java	2010-03-21 15:03:36 UTC (rev 32164)
@@ -23,7 +23,8 @@
     URL[]       urls;
     String username;
     String password;
-
+    boolean enableBasicAuthentication = false;
+    
     //this is only set if we are using a local cache - only fall back on this
     //when URL connection is not available.
     FileScanner localCacheFileScanner;
@@ -39,6 +40,7 @@
     void configure(Properties config) {   	
         username = config.getProperty( RuleAgent.USER_NAME );
         password = config.getProperty( RuleAgent.PASSWORD );
+        enableBasicAuthentication = Boolean.parseBoolean(config.getProperty( RuleAgent.ENABLE_BASIC_AUTHENTICATION ));
 
         List uriList = RuleAgent.list( config.getProperty( RuleAgent.URLS ) );
         urls = new URL[uriList.size()];
@@ -150,7 +152,7 @@
     }
 
     private Package readPackage(URL u) throws IOException, ClassNotFoundException {
-        return httpClient.fetchPackage( u, username, password );
+        return httpClient.fetchPackage( u, enableBasicAuthentication, username, password );
     }
 
     private boolean hasChanged(URL u, Map updates) throws IOException {

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/io/impl/UrlResource.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/io/impl/UrlResource.java	2010-03-21 04:50:38 UTC (rev 32163)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/io/impl/UrlResource.java	2010-03-21 15:03:36 UTC (rev 32164)
@@ -182,10 +182,11 @@
 
         if ( con instanceof HttpURLConnection) {
             if ("enabled".equalsIgnoreCase(basicAuthentication)) {
-            	Base64 enc = new Base64();
 				String userpassword = username + ":" + password;
+				byte[] authEncBytes = Base64.encodeBase64(userpassword.getBytes());
+
 				((HttpURLConnection) con).setRequestProperty("Authorization",
-						"Basic " + enc.encode(userpassword.getBytes()));
+						"Basic " +  new String(authEncBytes));
 			}
 
         }

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/agent/RuleAgentTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/agent/RuleAgentTest.java	2010-03-21 04:50:38 UTC (rev 32163)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/agent/RuleAgentTest.java	2010-03-21 15:03:36 UTC (rev 32164)
@@ -648,6 +648,8 @@
                       props.getProperty( RuleAgent.LOCAL_URL_CACHE ) );
         assertEquals( "true",
                       props.getProperty( RuleAgent.NEW_INSTANCE ) );
+        assertEquals( "true",
+                props.getProperty( RuleAgent.ENABLE_BASIC_AUTHENTICATION ) );
         assertEquals( "admin",
                 props.getProperty( RuleAgent.USER_NAME ) );
         assertEquals( "admin",

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/agent/URLScannerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/agent/URLScannerTest.java	2010-03-21 04:50:38 UTC (rev 32163)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/agent/URLScannerTest.java	2010-03-21 15:03:36 UTC (rev 32164)
@@ -160,7 +160,7 @@
                 return ping;
             }
 
-            public Package fetchPackage(URL url, String username, String password) throws IOException {
+            public Package fetchPackage(URL url, boolean enableBasicAuthentication, String username, String password) throws IOException {
                 if ( url.toExternalForm().equals( "http://goo2.ber" ) ) {
                     return new Package( "goo2.ber" );
                 } else {
@@ -233,7 +233,7 @@
                 return ping;
             }
 
-            public Package fetchPackage(URL url, String username, String password) throws IOException {
+            public Package fetchPackage(URL url, boolean enableBasicAuthentication, String username, String password) throws IOException {
                 if ( url.toExternalForm().equals( "http://goo.ber" ) ) {
                     return new Package( "goo.ber" );
                 } else {
@@ -276,7 +276,7 @@
                 return ping;
             }
 
-            public Package fetchPackage(URL url, String username, String password) throws IOException {
+            public Package fetchPackage(URL url, boolean enableBasicAuthentication, String username, String password) throws IOException {
                 throw new IOException( "poo" );
             }
 
@@ -307,7 +307,7 @@
                 return ping;
             }
 
-            public Package fetchPackage(URL url, String username, String password) throws IOException {
+            public Package fetchPackage(URL url, boolean enableBasicAuthentication, String username, String password) throws IOException {
                 fetchCalled[0] = true;
                 throw new IOException( "poo" );
             }
@@ -357,7 +357,7 @@
                 throw new IOException();
             }
 
-            public Package fetchPackage(URL url, String username, String password) throws IOException {
+            public Package fetchPackage(URL url, boolean enableBasicAuthentication, String username, String password) throws IOException {
                 throw new IOException();
             }
 

Modified: labs/jbossrules/trunk/drools-core/src/test/resources/basic-authentication-sample-agent-config.properties
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/resources/basic-authentication-sample-agent-config.properties	2010-03-21 04:50:38 UTC (rev 32163)
+++ labs/jbossrules/trunk/drools-core/src/test/resources/basic-authentication-sample-agent-config.properties	2010-03-21 15:03:36 UTC (rev 32164)
@@ -3,5 +3,6 @@
 localCacheDir=d:/drools
 poll=30
 name=XYZAgent
+enableBasicAuthentication=true
 username=admin
 password=admin



More information about the jboss-svn-commits mailing list