Author: rogerrut
Date: Tue Dec  6 20:34:10 2005
New Revision: 354705

URL: http://svn.apache.org/viewcvs?rev=354705&view=rev
Log:
Issues: JS2-192/JS2-388

Modified:
    
portals/jetspeed-2/trunk/components/sso/src/java/org/apache/jetspeed/sso/impl/PersistenceBrokerSSOProvider.java
    portals/jetspeed-2/trunk/src/webapp/WEB-INF/assembly/sso.xml

Modified: 
portals/jetspeed-2/trunk/components/sso/src/java/org/apache/jetspeed/sso/impl/PersistenceBrokerSSOProvider.java
URL: 
http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/sso/src/java/org/apache/jetspeed/sso/impl/PersistenceBrokerSSOProvider.java?rev=354705&r1=354704&r2=354705&view=diff
==============================================================================
--- 
portals/jetspeed-2/trunk/components/sso/src/java/org/apache/jetspeed/sso/impl/PersistenceBrokerSSOProvider.java
 (original)
+++ 
portals/jetspeed-2/trunk/components/sso/src/java/org/apache/jetspeed/sso/impl/PersistenceBrokerSSOProvider.java
 Tue Dec  6 20:34:10 2005
@@ -552,7 +552,7 @@
                // New credential object for remote principal
                 InternalCredentialImpl credential = 
             new InternalCredentialImpl(remotePrincipal.getPrincipalId(),
-                       pwd, 0, DefaultPasswordCredentialImpl.class.getName());
+                       this.scramble(pwd), 0, 
DefaultPasswordCredentialImpl.class.getName());
                 
                 if ( remotePrincipal.getCredentials() == null)
                        remotePrincipal.setCredentials(new ArrayList(0));
@@ -715,7 +715,7 @@
                        // New credential object
                         if ( credential != null) 
                                // Remove credential and principal from mapping
-                                credential.setValue(pwd);
+                                credential.setValue(this.scramble(pwd));
                        
                        // Update database and reset cache
                         try
@@ -828,7 +828,7 @@
                //      Create new context
                String name = stripPrincipalName(remotePrincipal.getFullPath());
                
-               SSOContext context = new 
SSOContextImpl(credential.getPrincipalId(), name, credential.getValue());
+               SSOContext context = new 
SSOContextImpl(credential.getPrincipalId(), name, 
this.unscramble(credential.getValue()));
                
                return context;
        }
@@ -1290,10 +1290,13 @@
                                        
                                        if (credential != null)
                                        {
+                                               if (log.isInfoEnabled())
+                                                       log.info("SSOComponent 
-- Remote Principal ["+stripPrincipalName(remotePrincipal.getFullPath())+"] has 
credential ["+this.unscramble(credential.getValue())+ "]");
+                                               
                                                
client.getState().setCredentials(
                                                        site.getRealm(),
                                                urlObj.getHost(),
-                                               new 
UsernamePasswordCredentials(stripPrincipalName(remotePrincipal.getFullPath()),  
credential.getValue())
+                                               new 
UsernamePasswordCredentials(stripPrincipalName(remotePrincipal.getFullPath()),  
this.unscramble(credential.getValue()))
                                            );
                                                
                                                // Build URL if it's Form 
authentication
@@ -1302,7 +1305,7 @@
                                                        // Check if it's form 
based or ChallengeResponse
                                                        if 
(site.isFormAuthentication())
                                                        {
-                                                               
siteURL.append("?").append(site.getFormUserField()).append("=").append(stripPrincipalName(remotePrincipal.getFullPath())).append("&").append(site.getFormPwdField()).append("=").append(credential.getValue());
+                                                               
siteURL.append("?").append(site.getFormUserField()).append("=").append(stripPrincipalName(remotePrincipal.getFullPath())).append("&").append(site.getFormPwdField()).append("=").append(this.unscramble(credential.getValue()));
                                                        }
                                                
                                                get = new 
GetMethod(siteURL.toString());
@@ -1401,5 +1404,33 @@
                get.releaseConnection();
                
                return bis;
+    }
+    
+    /*
+     * Simple encryption decryption routines since the API creates credentials 
+     * together with an user.
+     * TODO: re-implement when Security API is more flexible
+     */
+    static char[] scrambler ="Jestspeed-2 is getting ready for 
release".toCharArray();
+    
+    private String scramble(String pwd)
+    {
+       return new String( xor(pwd.toCharArray(), scrambler));
+    }
+    
+    private String unscramble(String pwd)
+    {
+       return new String(xor(pwd.toCharArray(),scrambler));
+    }
+    
+    private char[] xor(char[] a, char[]b)
+    {
+       int len = Math.min(a.length, b.length);
+       char[] result = new char[len];
+       for(int i=0; i<len;i++)
+       {
+               result[i] = (char) (a[i] ^ b[i]);
+       }
+       return result;
     }
 }

Modified: portals/jetspeed-2/trunk/src/webapp/WEB-INF/assembly/sso.xml
URL: 
http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/src/webapp/WEB-INF/assembly/sso.xml?rev=354705&r1=354704&r2=354705&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/src/webapp/WEB-INF/assembly/sso.xml (original)
+++ portals/jetspeed-2/trunk/src/webapp/WEB-INF/assembly/sso.xml Tue Dec  6 
20:34:10 2005
@@ -34,13 +34,12 @@
         <property name="transactionAttributes">
             <props>
                 <prop key="addSite*">PROPAGATION_REQUIRED</prop>
+                <prop key="updateSite*">PROPAGATION_REQUIRED</prop>
                 <prop key="removeSite">PROPAGATION_REQUIRED</prop>
                 <prop key="addCredentialsForSite">PROPAGATION_REQUIRED</prop>
                 <prop 
key="updateCredentialsForSite">PROPAGATION_REQUIRED</prop>
                 <prop 
key="removeCredentialsForSite">PROPAGATION_REQUIRED</prop>
-                <prop key="login">PROPAGATION_REQUIRED</prop>
-                <prop key="logout">PROPAGATION_REQUIRED</prop>
-                <prop key=" setRealmForSite">PROPAGATION_REQUIRED</prop>
+                <prop key="setRealmForSite">PROPAGATION_REQUIRED</prop>
                 <prop key="*">PROPAGATION_SUPPORTS</prop>
             </props>
         </property>



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to