|
@@ -42,7 +42,7 @@ import org.springframework.core.convert.converter.Converter;
|
|
import org.springframework.security.core.Authentication;
|
|
import org.springframework.security.core.Authentication;
|
|
import org.springframework.security.saml2.core.OpenSamlInitializationService;
|
|
import org.springframework.security.saml2.core.OpenSamlInitializationService;
|
|
import org.springframework.security.saml2.core.Saml2ParameterNames;
|
|
import org.springframework.security.saml2.core.Saml2ParameterNames;
|
|
-import org.springframework.security.saml2.provider.service.authentication.Saml2AuthenticatedPrincipal;
|
|
|
|
|
|
+import org.springframework.security.saml2.provider.service.authentication.Saml2AuthenticationInfo;
|
|
import org.springframework.security.saml2.provider.service.authentication.logout.Saml2LogoutRequest;
|
|
import org.springframework.security.saml2.provider.service.authentication.logout.Saml2LogoutRequest;
|
|
import org.springframework.security.saml2.provider.service.registration.RelyingPartyRegistration;
|
|
import org.springframework.security.saml2.provider.service.registration.RelyingPartyRegistration;
|
|
import org.springframework.security.saml2.provider.service.registration.Saml2MessageBinding;
|
|
import org.springframework.security.saml2.provider.service.registration.Saml2MessageBinding;
|
|
@@ -149,9 +149,9 @@ final class BaseOpenSamlLogoutRequestResolver implements Saml2LogoutRequestResol
|
|
NameID nameId = this.nameIdBuilder.buildObject();
|
|
NameID nameId = this.nameIdBuilder.buildObject();
|
|
nameId.setValue(authentication.getName());
|
|
nameId.setValue(authentication.getName());
|
|
logoutRequest.setNameID(nameId);
|
|
logoutRequest.setNameID(nameId);
|
|
- if (authentication.getPrincipal() instanceof Saml2AuthenticatedPrincipal) {
|
|
|
|
- Saml2AuthenticatedPrincipal principal = (Saml2AuthenticatedPrincipal) authentication.getPrincipal();
|
|
|
|
- for (String index : principal.getSessionIndexes()) {
|
|
|
|
|
|
+ Saml2AuthenticationInfo info = Saml2AuthenticationInfo.fromAuthentication(authentication);
|
|
|
|
+ if (info != null) {
|
|
|
|
+ for (String index : info.getSessionIndexes()) {
|
|
SessionIndex sessionIndex = this.sessionIndexBuilder.buildObject();
|
|
SessionIndex sessionIndex = this.sessionIndexBuilder.buildObject();
|
|
sessionIndex.setValue(index);
|
|
sessionIndex.setValue(index);
|
|
logoutRequest.getSessionIndexes().add(sessionIndex);
|
|
logoutRequest.getSessionIndexes().add(sessionIndex);
|
|
@@ -191,12 +191,9 @@ final class BaseOpenSamlLogoutRequestResolver implements Saml2LogoutRequestResol
|
|
if (this.logger.isTraceEnabled()) {
|
|
if (this.logger.isTraceEnabled()) {
|
|
this.logger.trace("Attempting to resolve registrationId from " + authentication);
|
|
this.logger.trace("Attempting to resolve registrationId from " + authentication);
|
|
}
|
|
}
|
|
- if (authentication == null) {
|
|
|
|
- return null;
|
|
|
|
- }
|
|
|
|
- Object principal = authentication.getPrincipal();
|
|
|
|
- if (principal instanceof Saml2AuthenticatedPrincipal) {
|
|
|
|
- return ((Saml2AuthenticatedPrincipal) principal).getRelyingPartyRegistrationId();
|
|
|
|
|
|
+ Saml2AuthenticationInfo info = Saml2AuthenticationInfo.fromAuthentication(authentication);
|
|
|
|
+ if (info != null) {
|
|
|
|
+ return info.getRelyingPartyRegistrationId();
|
|
}
|
|
}
|
|
return null;
|
|
return null;
|
|
}
|
|
}
|