code: @Override
      public String getProxyTicket(String service) {
          Assert.hasText(service, "service cannot not be null or blank");
          Assertion assertion = assertionProvider.getAssertion();
  
          AttributePrincipal principal = assertion.getPrincipal();
          if (principal == null) {
              throw new IllegalStateException(String.format(EXCEPTION_MESSAGE, AttributePrincipal.class.getSimpleName()));
          }
  
          return principal.getProxyTicketFor(service);
      }
docs: {@inheritDoc}
  
  @throws IllegalArgumentException if {@code service} is null or blank
  @throws IllegalStateException    if {@link Assertion} from {@link AssertionProvider#getAssertion()} is
  {@code null} or {@link AttributePrincipal} from previous
  {@link Assertion#getPrincipal()} is {@code null}.