Index: components/web-content/src/java/org/apache/jetspeed/portlet/SSOIFramePortlet.java =================================================================== --- components/web-content/src/java/org/apache/jetspeed/portlet/SSOIFramePortlet.java (revision 598778) +++ components/web-content/src/java/org/apache/jetspeed/portlet/SSOIFramePortlet.java (working copy) @@ -165,13 +165,23 @@ try { Subject subject = getSubject(); + if (sso.hasSSOCredentials(subject, site)) { - sso.updateCredentialsForSite(getSubject(), ssoPrincipal, site, ssoCredential); + SSOContext context = sso.getCredentials(subject, site); + if (!context.getRemotePrincipalName().equals(ssoPrincipal)) + { + sso.removeCredentialsForSite(subject, site); + sso.addCredentialsForSite(subject, ssoPrincipal, site, ssoCredential); + } + else + { + sso.updateCredentialsForSite(subject, ssoPrincipal, site, ssoCredential); + } } else { - sso.addCredentialsForSite(getSubject(), ssoPrincipal, site, ssoCredential); + sso.addCredentialsForSite(subject, ssoPrincipal, site, ssoCredential); } } catch (SSOException e)