public static void main(String[] args) throws Exception {
        final SamlServiceProvider ssp = samlServiceProvider();
        final Server server =
                Server.builder()
                      .https(8443)
                      // You can add this certificate to your trust store
                      // in order to make your web browser happy.
                      .tls(new File(ClassLoader.getSystemResource("localhost.crt").toURI()),
                           new File(ClassLoader.getSystemResource("localhost.key").toURI()))
                      // Decorate you service with SAML decorator.
                      .annotatedService("/", new MyService(), ssp.newSamlDecorator())
                      // Add SAML service to your server which handles a SAML response and a metadata request.
                      .service(ssp.newSamlService())
                      .build();

        server.closeOnJvmShutdown();

        server.start().join();
        logger.info("Server has been started.");
    }
Configures an identity provider with <a href="https://idp.ssocircle.com/meta-idp.xml">
the metadata of the SSOCircle</a>. You must <a href="https://idp.ssocircle.com/sso/hos/SPMetaInter.jsp">
register</a> this service provider, which we are configuring here, to the SSOCircle.
You can get the metadata of this service provider from {@code https://localhost:8443/saml/metadata}
after starting this server.

<p>The {@code signing} and {@code encryption} key pair in the keystore {@code sample.jks} can be
generated with the following commands:
<pre>{@code
$ keytool -genkeypair -keystore sample.jks -storepass 'N5^X[hvG' -keyalg rsa -sigalg sha1withrsa \
    -dname 'CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown' -alias signing \
    -deststoretype pkcs12

$ keytool -genkeypair -keystore sample.jks -storepass 'N5^X[hvG' -keyalg rsa -sigalg sha1withrsa \
    -dname 'CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown' -alias encryption \
    -deststoretype pkcs12
}</pre>

<p>The certificate of the SSOCircle can be imported into the keystore with the following command.
You can specify its alias as same as its entity ID so that you do not need to specify the alias
when building a {@link SamlServiceProvider}. You can make {@code ssocircle.crt} file with
the certificate from <a href="https://www.ssocircle.com/en/idp-tips-tricks/public-idp-configuration/">
Public IDP Configuration</a> of SSOCircle.
<pre>{@code
$ keytool -importcert -keystore sample.jks -storepass 'N5^X[hvG' -file ssocircle.crt \
    -alias 'https://idp.ssocircle.com' -deststoretype pkcs12
}</pre>
examples/saml-service-provider/src/main/java/example/armeria/server/saml/sp/Main.java