Class CounterParty

java.lang.Object
swiss.trustbroker.federation.xmlconfig.CounterParty
All Implemented Interfaces:
Serializable, PathReference
Direct Known Subclasses:
ClaimsParty, RelyingParty

public abstract class CounterParty extends Object implements PathReference, Serializable
Abstraction for shared features of RP and CP.
Design note: This base class could contain shared XML fields directly. But as it was retrofitted, that would change the order of elements in the XML, breaking backward compatibility.
Since:
1.8.0
See Also:
  • Constructor Details

  • Method Details

    • getId

      public abstract String getId()
      Returns:
      ID of the counterparty
    • getEnabled

      public abstract FeatureEnum getEnabled()
      Returns:
      enabled flag from config or overridden due to validation errors
    • setEnabled

      public abstract void setEnabled(FeatureEnum enabled)
      Parameters:
      enabled - override enabled flag
    • getShortType

      @Nonnull public abstract String getShortType()
      Returns:
      type for logging etc. (RP/CP)
    • getSubjectNameMappings

      public abstract SubjectNameMappings getSubjectNameMappings()
      Returns:
      Subject Name ID mappings for this party.
    • getSecurityPolicies

      public abstract SecurityPolicies getSecurityPolicies()
      Returns:
      Global security policy overrides for this party.
    • getSaml

      public abstract Saml getSaml()
      Returns:
      SAML configuration
    • getWsTrust

      public abstract WsTrust getWsTrust()
      Returns:
      WS-Trust configuration
    • getOidc

      public abstract Oidc getOidc()
      Returns:
      SAML configuration
    • getAttributesSelection

      public abstract AttributesSelection getAttributesSelection()
      Returns:
      Selection of attributes.
    • getScripts

      public abstract Scripts getScripts()
      Returns:
      Scripts
    • getQoa

      public abstract Qoa getQoa()
      Returns:
      Qoa configuration
      Since:
      1.9.0
    • getCertificates

      public abstract Certificates getCertificates()
      Returns:
      Certificate
      Since:
      1.12.0
    • getSubPath

      public String getSubPath()
      Specified by:
      getSubPath in interface PathReference
      Returns:
      The file's path relative to the definition directory.
    • setSubPath

      public void setSubPath(String subPath)
      Specified by:
      setSubPath in interface PathReference
      Parameters:
      subPath - The file's path relative to the definition directory.
    • getValidationStatus

      public ValidationStatus getValidationStatus()
    • isValid

      public boolean isValid()
    • isEnabled

      public boolean isEnabled()
    • invalidate

      public void invalidate(Throwable ex)
    • invalidate

      public void invalidate(String error)
    • initializedValidationStatus

      public ValidationStatus initializedValidationStatus()
    • getSamlProtocolEndpoints

      public ProtocolEndpoints getSamlProtocolEndpoints()
    • getSamlArtifactBinding

      public ArtifactBinding getSamlArtifactBinding()
    • getSupportedSamlBindings

      public List<swiss.trustbroker.common.saml.dto.SamlBinding> getSupportedSamlBindings()
    • getEncryption

      public Encryption getEncryption()
    • getSignature

      public Signature getSignature()
    • getSignatureParametersBuilder

      public swiss.trustbroker.common.saml.dto.SignatureParameters.SignatureParametersBuilder getSignatureParametersBuilder()
    • isValidInboundBinding

      public boolean isValidInboundBinding(swiss.trustbroker.common.saml.dto.SamlBinding samlBinding, Collection<swiss.trustbroker.common.saml.dto.SamlBinding> defaultBindings)
    • forwardRpProtocolBinding

      public boolean forwardRpProtocolBinding()
    • getQoaConfig

      public QoaConfig getQoaConfig()
    • requireSignedAuthnRequest

      public boolean requireSignedAuthnRequest()
    • requireSignedLogoutRequest

      public boolean requireSignedLogoutRequest()
    • requireSignedLogoutNotificationRequest

      public boolean requireSignedLogoutNotificationRequest()
    • requireSignedResponse

      public boolean requireSignedResponse(boolean defaultValue)
    • requireEncryptedAssertion

      public boolean requireEncryptedAssertion()
    • requireSignedArtifactResponse

      public boolean requireSignedArtifactResponse(boolean defaultValue)
    • doSignArtifactResolve

      public boolean doSignArtifactResolve(boolean defaultValue)
    • validateHttpHeaders

      public boolean validateHttpHeaders(boolean defaultValue)
    • forceAuthn

      public boolean forceAuthn(boolean defaultValue)
    • requireSignedAuthnRequestForSsoJoin

      public boolean requireSignedAuthnRequestForSsoJoin()
    • getAllowedSignatureAlgorithms

      public List<String> getAllowedSignatureAlgorithms(List<String> defaultValue)
    • wsTrustIssueRequireSignedAssertion

      public boolean wsTrustIssueRequireSignedAssertion(boolean defaultValue)
    • wsTrustIssueRequireSignedRequest

      public boolean wsTrustIssueRequireSignedRequest(boolean defaultValue)
    • wsTrustIssueRequireTimestamp

      public boolean wsTrustIssueRequireTimestamp(boolean defaultValue)
    • getWsTrustIssueNotBeforeToleranceSec

      public long getWsTrustIssueNotBeforeToleranceSec(long defaultValue)
    • getWsTrustIssueNotOnOrAfterToleranceSec

      public long getWsTrustIssueNotOnOrAfterToleranceSec(long defaultValue)
    • getSsoMinQoaLevel

      public int getSsoMinQoaLevel(int defaultValue)
    • getAttributesDefinitions

      public List<Definition> getAttributesDefinitions()
    • getOidcClients

      public List<OidcClient> getOidcClients()
    • isOidcEnabled

      public boolean isOidcEnabled(boolean oidcGloballyEnabled)
      Returns:
      true if OIDC is to be used towards RP/CP.
    • isSamlEnabled

      public boolean isSamlEnabled(boolean samlGloballyEnabled)
      Returns:
      true if SAML is to be used towards RP/CP.
      SAML works without explicit Saml element - in that case it is considered enabled if no Oidc element is present.
      Thus, for using both SAML and OIDC (only makes sense for RPs), you need to add a Saml element.
    • getSupportedWsTrustBindings

      public List<WsTrustBinding> getSupportedWsTrustBindings(CounterParty baseParty)
    • isValidInboundBinding

      public boolean isValidInboundBinding(WsTrustBinding wsTrustBinding, Collection<WsTrustBinding> defaultBindings, CounterParty baseParty)
    • isWsTrustEnabled

      public boolean isWsTrustEnabled(boolean wsTrustGloballyEnabled, CounterParty baseParty)
      Returns:
      true if Ws-Trust is to be used towards RP/CP.
    • setValidationStatus

      public void setValidationStatus(ValidationStatus validationStatus)
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • canEqual

      protected boolean canEqual(Object other)
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object