code: @Nonnull
      @Override
      public Assertion getAssertion() {
          // @formatter:off
          return ((CasAuthenticationToken) Optional.ofNullable(SecurityContextHolder.getContext().getAuthentication())
                  .filter(a -> a instanceof CasAuthenticationToken)
                  .orElseThrow(() -> new IllegalStateException(
                          String.format("Unable to provide an %s with null or non %s authentication",
                                  Assertion.class.getSimpleName(),
                                  CasAuthenticationToken.class.getCanonicalName()))))
                  .getAssertion();
          // @formatter:on
      }
docs: {@inheritDoc}
  
  @throws IllegalStateException if current {@link org.springframework.security.core.Authentication} retrieve from
  {@link SecurityContext#getAuthentication()} is not instance of
  {@link CasAuthenticationToken}.