ate         2004/10/17 18:35:48

  Modified:    components/security/src/java/org/apache/jetspeed/security/spi/impl
                        DefaultCredentialHandler.java
  Log:
  Added setPassword security checks
  
  Revision  Changes    Path
  1.5       +23 -0     
jakarta-jetspeed-2/components/security/src/java/org/apache/jetspeed/security/spi/impl/DefaultCredentialHandler.java
  
  Index: DefaultCredentialHandler.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed-2/components/security/src/java/org/apache/jetspeed/security/spi/impl/DefaultCredentialHandler.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- DefaultCredentialHandler.java     11 Oct 2004 23:25:29 -0000      1.4
  +++ DefaultCredentialHandler.java     18 Oct 2004 01:35:48 -0000      1.5
  @@ -159,6 +159,29 @@
               {
                   credentials.remove(oldInternalCredential);
               }
  +            else
  +            {
  +                // supplied PasswordCredential not defined for this user
  +                throw new SecurityException(SecurityException.INVALID_PASSWORD);
  +            }
  +        }
  +        else
  +        {
  +            Iterator iter = credentials.iterator();
  +            while (iter.hasNext())
  +            {
  +                InternalCredential credential = (InternalCredential) iter.next();
  +                if (credential.getType() == type)
  +                {
  +                    if ((null != credential.getClassname())
  +                            && 
(credential.getClassname().equals((PasswordCredential.class).getName())))
  +                    {
  +                        // User *has* an PasswordCredential: setting a new 
Credential without supplying
  +                        // its current one is not allowed
  +                        throw new 
SecurityException(SecurityException.PASSWORD_REQUIRED);
  +                    }
  +                }
  +            }            
           }
           InternalCredential newInternalCredential = new 
InternalCredentialImpl(internalUser.getPrincipalId(),
                   new String(newPwdCredential.getPassword()), type, 
newPwdCredential.getClass().getName());
  
  
  

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

Reply via email to