[jboss-svn-commits] JBL Code SVN: r35851 - labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/security.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Nov 3 12:34:35 EDT 2010


Author: tsurdilovic
Date: 2010-11-03 12:34:34 -0400 (Wed, 03 Nov 2010)
New Revision: 35851

Modified:
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/security/SecurityServiceImpl.java
Log:
BRMS-422 : If a user fails to configure the serialization keystore - the first indication of a problem may be when the sample mortgage rules fails to configure

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/security/SecurityServiceImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/security/SecurityServiceImpl.java	2010-11-03 16:34:16 UTC (rev 35850)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/security/SecurityServiceImpl.java	2010-11-03 16:34:34 UTC (rev 35851)
@@ -64,6 +64,8 @@
     public static final String       GUEST_LOGIN = "guest";
     private static final Logger      log         = LoggerFactory.getLogger( SecurityServiceImpl.class );
     static final Map<String, String> PREFERENCES = loadPrefs();
+    private static String[] serializationProperties = new String[] {"drools.serialization.private.keyStoreURL", "drools.serialization.private.keyStorePwd",
+    	"drools.serialization.private.keyAlias", "drools.serialization.private.keyPwd", "drools.serialization.public.keyStoreURL", "drools.serialization.public.keyStorePwd"};
 
     public boolean login(String userName,
                          String password) {  	
@@ -158,12 +160,33 @@
                     Identity.instance().logout();
                     throw new AuthorizationException( "This user has no permissions setup." );
             }
+            
+            if(invalidSecuritySerilizationSetup()) {
+            	Identity.instance().logout();
+                throw new AuthorizationException( " Configuration error - Please refer to the Administration Guide section on installation. You must configure a key store before proceding.  " );
+            }
             return c.calcCapabilities( permissions,
                                        PREFERENCES );
         } else {
+        	if(invalidSecuritySerilizationSetup()) {
+                throw new AuthorizationException( " Configuration error - Please refer to the Administration Guide section on installation. You must configure a key store before proceding.  " );
+            }
             return Capabilities.all( PREFERENCES );
         }
     }
+    
+    private boolean invalidSecuritySerilizationSetup() {
+    	String ssecurity = System.getProperty("drools.serialization.sign");
+    	if(ssecurity != null && ssecurity.equalsIgnoreCase( "true" )) {
+    		for(String nextProp : serializationProperties) {
+    			String nextPropVal = System.getProperty(nextProp);
+    			if(nextPropVal == null || nextPropVal.trim().equals("")) {
+    				return true;
+    			}
+    		}
+    	}
+    	return false;
+    }
 
     private static Map<String, String> loadPrefs() {
         Properties ps = new Properties();



More information about the jboss-svn-commits mailing list