Package swiss.trustbroker.sso.service
Class SsoService
java.lang.Object
swiss.trustbroker.sso.service.SsoService
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classstatic classstatic enumstatic class -
Constructor Summary
ConstructorsConstructorDescriptionSsoService(RelyingPartyDefinitions relyingPartyDefinitions, RelyingPartySetupService relyingPartySetupService, AuditService auditService, QoaMappingService qoaMappingService, StateCacheService stateCacheService, TrustBrokerProperties trustBrokerProperties, Clock clock) -
Method Summary
Modifier and TypeMethodDescriptionvoidauditLogoutRequestFromRp(jakarta.servlet.http.HttpServletRequest httpServletRequest, org.opensaml.saml.saml2.core.LogoutRequest logoutRequest, StateData stateData, RelyingParty relyingParty, OidcAuditData oidcAuditData) buildSloResponseParameters(RelyingParty relyingParty, String referer, Set<SsoSessionParticipant> sloNotifications, org.opensaml.saml.saml2.core.NameID nameId, String oidcSessionId, String oidcRedirectUrl) voidcompleteDeviceInfoPreservingStateForSso(StateData ssoStateData, StateData stateDataByAuthnReq, RelyingParty relyingParty) computeOidcSingleLogoutUrl(String oidcRedirectUrl, String requestReferrer, RelyingParty relyingParty) computeSamlSingleLogoutUrl(String requestReferrer, RelyingParty relyingParty) voidestablishImplicitSso(RelyingParty relyingParty, ClaimsParty claimsParty, StateData stateData) voidestablishSso(RelyingParty relyingParty, ClaimsParty claimsParty, StateData stateData, SsoGroup ssoGroup) findValidSsoSessionForSessionIndexes(List<String> sessionIndexes) findValidStateAndCookiesToExpire(SsoService.SsoCookieNameParams nameParams, jakarta.servlet.http.Cookie[] cookies, RelyingParty relyingParty) findValidStateFromCookies(RelyingParty relyingParty, ClaimsParty claimsParty, jakarta.servlet.http.Cookie[] cookies) findValidStateFromCookies(RelyingParty relyingParty, ClaimsParty claimsParty, String subjectNameId, jakarta.servlet.http.Cookie[] cookies) findValidStateFromCookiesAndRelyingParty(RelyingParty relyingParty, jakarta.servlet.http.Cookie[] cookies) findValidStatesFromCookies(RelyingParty relyingParty, jakarta.servlet.http.Cookie[] cookies) jakarta.servlet.http.CookiegenerateCookie(StateData stateData) jakarta.servlet.http.CookiegenerateExpiredCookie(StateData stateData) getAllSsoParticipants(jakarta.servlet.http.Cookie[] cookies, String deviceId) getRelyingPartiesForSamlSlo(String issuer, String referrer) getSloIssuerWithFallback(String rpSloIssuer) getSsoParticipants(SsoService.SsoCookieNameParams ssoCookieNameParams, jakarta.servlet.http.Cookie[] cookies, String deviceId) static StringgetSsoSubject(StateData stateData, ClaimsParty claimsParty) voidhandleLogoutResponse(org.opensaml.saml.saml2.core.LogoutResponse response, String relayState, jakarta.servlet.http.HttpServletRequest httpRequest) booleanisOidcPrincipalAllowedToJoinSsoSession(StateData ssoStateData, String userPrincipal, String oidcClientId, String oidcSessionId) booleanisRelyingPartyOkForSso(RelyingParty relyingParty, StateData stateData) logoutRelyingParty(String logoutIssuer, List<String> sessionIndexes, RelyingParty relyingParty, jakarta.servlet.http.Cookie[] cookies, SsoService.SloState logoutState) Produce logout notifications for RP.List<jakarta.servlet.http.Cookie> logoutSsoParticipantById(SsoService.SsoCookieNameParams ssoCookieNameParams, jakarta.servlet.http.Cookie[] cookies, String deviceId, String participantId) prepareRedirectForDeviceInfoAfterHrd(jakarta.servlet.http.Cookie[] cookies, StateData stateDataByAuthnReq, String claimsPartyId) skipCpAuthentication(ClaimsParty claimsParty, RelyingParty relyingParty, StateData stateDataByAuthnReq, StateData ssoStateData) booleanssoStateValidForDeviceInfo(ClaimsParty claimsParty, RelyingParty relyingParty, StateData ssoStateData, StateData stateDataByAuthnReq, String deviceId, String cpIssuerId) booleanssoStateValidForJoin(ClaimsParty claimsParty, RelyingParty relyingParty, StateData ssoStateData, StateData stateDataByAuthnReq, String deviceId, String cpIssuerId)
-
Constructor Details
-
SsoService
public SsoService(RelyingPartyDefinitions relyingPartyDefinitions, RelyingPartySetupService relyingPartySetupService, AuditService auditService, QoaMappingService qoaMappingService, StateCacheService stateCacheService, TrustBrokerProperties trustBrokerProperties, Clock clock)
-
-
Method Details
-
generateCookie
-
getSsoSubject
-
findValidStateFromCookies
public Optional<StateData> findValidStateFromCookies(RelyingParty relyingParty, ClaimsParty claimsParty, jakarta.servlet.http.Cookie[] cookies) -
findValidStateFromCookiesAndRelyingParty
public Optional<StateData> findValidStateFromCookiesAndRelyingParty(RelyingParty relyingParty, jakarta.servlet.http.Cookie[] cookies) -
findValidStateFromCookies
public Optional<StateData> findValidStateFromCookies(RelyingParty relyingParty, ClaimsParty claimsParty, String subjectNameId, jakarta.servlet.http.Cookie[] cookies) -
findValidStatesFromCookies
public Collection<StateData> findValidStatesFromCookies(RelyingParty relyingParty, jakarta.servlet.http.Cookie[] cookies) -
findValidStateAndCookiesToExpire
public Optional<SsoService.StateWithCookies> findValidStateAndCookiesToExpire(SsoService.SsoCookieNameParams nameParams, jakarta.servlet.http.Cookie[] cookies, RelyingParty relyingParty) -
isRelyingPartyOkForSso
-
skipCpAuthentication
public SsoService.SsoSessionOperation skipCpAuthentication(ClaimsParty claimsParty, RelyingParty relyingParty, StateData stateDataByAuthnReq, StateData ssoStateData) -
ssoStateValidForJoin
public boolean ssoStateValidForJoin(ClaimsParty claimsParty, RelyingParty relyingParty, StateData ssoStateData, StateData stateDataByAuthnReq, String deviceId, String cpIssuerId) -
ssoStateValidForDeviceInfo
public boolean ssoStateValidForDeviceInfo(ClaimsParty claimsParty, RelyingParty relyingParty, StateData ssoStateData, StateData stateDataByAuthnReq, String deviceId, String cpIssuerId) -
logoutSsoParticipantById
public List<jakarta.servlet.http.Cookie> logoutSsoParticipantById(SsoService.SsoCookieNameParams ssoCookieNameParams, jakarta.servlet.http.Cookie[] cookies, String deviceId, String participantId) -
generateExpiredCookie
-
getSsoParticipants
public SsoParticipants getSsoParticipants(SsoService.SsoCookieNameParams ssoCookieNameParams, jakarta.servlet.http.Cookie[] cookies, String deviceId) -
getAllSsoParticipants
public List<SsoParticipants> getAllSsoParticipants(jakarta.servlet.http.Cookie[] cookies, String deviceId) -
establishImplicitSso
public void establishImplicitSso(RelyingParty relyingParty, ClaimsParty claimsParty, StateData stateData) -
establishSso
public void establishSso(RelyingParty relyingParty, ClaimsParty claimsParty, StateData stateData, SsoGroup ssoGroup) -
isOidcPrincipalAllowedToJoinSsoSession
-
completeDeviceInfoPreservingStateForSso
public void completeDeviceInfoPreservingStateForSso(StateData ssoStateData, StateData stateDataByAuthnReq, RelyingParty relyingParty) -
prepareRedirectForDeviceInfoAfterHrd
public SsoService.SsoSessionOperation prepareRedirectForDeviceInfoAfterHrd(jakarta.servlet.http.Cookie[] cookies, StateData stateDataByAuthnReq, String claimsPartyId) -
getRelyingPartiesForSamlSlo
-
logoutRelyingParty
public Optional<StateData> logoutRelyingParty(String logoutIssuer, List<String> sessionIndexes, RelyingParty relyingParty, jakarta.servlet.http.Cookie[] cookies, SsoService.SloState logoutState) Produce logout notifications for RP. The logoutState is updated accordingly. -
computeSamlSingleLogoutUrl
-
computeOidcSingleLogoutUrl
public String computeOidcSingleLogoutUrl(String oidcRedirectUrl, String requestReferrer, RelyingParty relyingParty) -
getSloIssuerWithFallback
-
handleLogoutResponse
public void handleLogoutResponse(org.opensaml.saml.saml2.core.LogoutResponse response, String relayState, jakarta.servlet.http.HttpServletRequest httpRequest) -
auditLogoutRequestFromRp
public void auditLogoutRequestFromRp(jakarta.servlet.http.HttpServletRequest httpServletRequest, org.opensaml.saml.saml2.core.LogoutRequest logoutRequest, StateData stateData, RelyingParty relyingParty, OidcAuditData oidcAuditData) -
buildSloResponseParameters
public SloResponseParameters buildSloResponseParameters(RelyingParty relyingParty, String referer, Set<SsoSessionParticipant> sloNotifications, org.opensaml.saml.saml2.core.NameID nameId, String oidcSessionId, String oidcRedirectUrl) - Parameters:
relyingParty- configurationreferer- optionalsloNotifications- optional (else use empty set), from SSO sessionnameId- optional, from CpResponseoidcSessionId- optional, from OIDC session, null for logout initiated via SAMLoidcRedirectUrl- optional, null for logout initiated via SAML- Returns:
- parameters for rendering SLO velocity template.
-
findValidSsoSessionForSessionIndexes
-