keycloak-service
公開メンバ関数 | 静的公開変数類 | 静的非公開変数類 | 全メンバ一覧
org.keycloak.protocol.docker.installation.DockerComposeYamlInstallationProvider クラス
org.keycloak.protocol.docker.installation.DockerComposeYamlInstallationProvider の継承関係図
Inheritance graph
org.keycloak.protocol.docker.installation.DockerComposeYamlInstallationProvider 連携図
Collaboration graph

公開メンバ関数

ClientInstallationProvider create (final KeycloakSession session)
 
void init (final Config.Scope config)
 
void postInit (final KeycloakSessionFactory factory)
 
void close ()
 
String getId ()
 
Response generateInstallation (final KeycloakSession session, final RealmModel realm, final ClientModel client, final URI serverBaseUri)
 
Response generateInstallation (final ZipOutputStream zipOutput, final ByteArrayOutputStream byteStream, final Certificate realmCert, final URL realmBaseURl, final String realmName, final String clientName) throws IOException
 
String getProtocol ()
 
String getDisplayType ()
 
String getHelpText ()
 
String getFilename ()
 
String getMediaType ()
 
boolean isDownloadOnly ()
 

静的公開変数類

static final String ROOT_DIR = "keycloak-docker-compose-yaml/"
 

静的非公開変数類

static Logger log = Logger.getLogger(DockerComposeYamlInstallationProvider.class)
 

詳解

関数詳解

◆ close()

void org.keycloak.protocol.docker.installation.DockerComposeYamlInstallationProvider.close ( )
inline
46  {
47  // no-op
48  }

◆ create()

ClientInstallationProvider org.keycloak.protocol.docker.installation.DockerComposeYamlInstallationProvider.create ( final KeycloakSession  session)
inline
31  {
32  return this;
33  }

◆ generateInstallation() [1/2]

Response org.keycloak.protocol.docker.installation.DockerComposeYamlInstallationProvider.generateInstallation ( final KeycloakSession  session,
final RealmModel  realm,
final ClientModel  client,
final URI  serverBaseUri 
)
inline
56  {
57  final ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
58  final ZipOutputStream zipOutput = new ZipOutputStream(byteStream);
59 
60  try {
61  return generateInstallation(zipOutput, byteStream, session.keys().getActiveRsaKey(realm).getCertificate(), session.getContext().getAuthServerUrl().toURL(), realm.getName(), client.getClientId());
62  } catch (final IOException e) {
63  try {
64  zipOutput.close();
65  } catch (final IOException ex) {
66  // do nothing, already in an exception
67  }
68  try {
69  byteStream.close();
70  } catch (final IOException ex) {
71  // do nothing, already in an exception
72  }
73  throw new RuntimeException("Error occurred during attempt to generate docker-compose yaml installation files", e);
74  }
75  }
Response generateInstallation(final KeycloakSession session, final RealmModel realm, final ClientModel client, final URI serverBaseUri)
Definition: DockerComposeYamlInstallationProvider.java:56

◆ generateInstallation() [2/2]

Response org.keycloak.protocol.docker.installation.DockerComposeYamlInstallationProvider.generateInstallation ( final ZipOutputStream  zipOutput,
final ByteArrayOutputStream  byteStream,
final Certificate  realmCert,
final URL  realmBaseURl,
final String  realmName,
final String  clientName 
) throws IOException
inline
78  {
79  final DockerComposeZipContent zipContent = new DockerComposeZipContent(realmCert, realmBaseURl, realmName, clientName);
80 
81  zipOutput.putNextEntry(new ZipEntry(ROOT_DIR));
82 
83  // Write docker compose file
84  zipOutput.putNextEntry(new ZipEntry(ROOT_DIR + "docker-compose.yaml"));
85  zipOutput.write(zipContent.getYamlFile().generateDockerComposeFileBytes());
86  zipOutput.closeEntry();
87 
88  // Write data directory
89  zipOutput.putNextEntry(new ZipEntry(ROOT_DIR + zipContent.getDataDirectoryName() + "/"));
90  zipOutput.putNextEntry(new ZipEntry(ROOT_DIR + zipContent.getDataDirectoryName() + "/.gitignore"));
91  zipOutput.write("*".getBytes());
92  zipOutput.closeEntry();
93 
94  // Write certificates
95  final String certsDirectory = ROOT_DIR + zipContent.getCertsDirectory().getDirectoryName() + "/";
96  zipOutput.putNextEntry(new ZipEntry(certsDirectory));
97  zipOutput.putNextEntry(new ZipEntry(certsDirectory + zipContent.getCertsDirectory().getLocalhostCertFile().getKey()));
98  zipOutput.write(zipContent.getCertsDirectory().getLocalhostCertFile().getValue());
99  zipOutput.closeEntry();
100  zipOutput.putNextEntry(new ZipEntry(certsDirectory + zipContent.getCertsDirectory().getLocalhostKeyFile().getKey()));
101  zipOutput.write(zipContent.getCertsDirectory().getLocalhostKeyFile().getValue());
102  zipOutput.closeEntry();
103  zipOutput.putNextEntry(new ZipEntry(certsDirectory + zipContent.getCertsDirectory().getIdpTrustChainFile().getKey()));
104  zipOutput.write(zipContent.getCertsDirectory().getIdpTrustChainFile().getValue());
105  zipOutput.closeEntry();
106 
107  // Write README to .zip
108  zipOutput.putNextEntry(new ZipEntry(ROOT_DIR + "README.md"));
109  final String readmeContent = new BufferedReader(new InputStreamReader(DockerComposeYamlInstallationProvider.class.getResourceAsStream("/DockerComposeYamlReadme.md"))).lines().collect(Collectors.joining("\n"));
110  zipOutput.write(readmeContent.getBytes());
111  zipOutput.closeEntry();
112 
113  zipOutput.close();
114  byteStream.close();
115 
116  return Response.ok(byteStream.toByteArray(), getMediaType()).build();
117  }
static final String ROOT_DIR
Definition: DockerComposeYamlInstallationProvider.java:28
String getMediaType()
Definition: DockerComposeYamlInstallationProvider.java:140

◆ getDisplayType()

String org.keycloak.protocol.docker.installation.DockerComposeYamlInstallationProvider.getDisplayType ( )
inline
125  {
126  return "Docker Compose YAML";
127  }

◆ getFilename()

String org.keycloak.protocol.docker.installation.DockerComposeYamlInstallationProvider.getFilename ( )
inline
135  {
136  return "keycloak-docker-compose-yaml.zip";
137  }

◆ getHelpText()

String org.keycloak.protocol.docker.installation.DockerComposeYamlInstallationProvider.getHelpText ( )
inline
130  {
131  return "Produces a zip file that can be used to stand up a development registry on localhost";
132  }

◆ getId()

String org.keycloak.protocol.docker.installation.DockerComposeYamlInstallationProvider.getId ( )
inline
51  {
52  return "docker-v2-compose-yaml";
53  }

◆ getMediaType()

String org.keycloak.protocol.docker.installation.DockerComposeYamlInstallationProvider.getMediaType ( )
inline
140  {
141  return "application/zip";
142  }

◆ getProtocol()

String org.keycloak.protocol.docker.installation.DockerComposeYamlInstallationProvider.getProtocol ( )
inline
120  {
121  return DockerAuthV2Protocol.LOGIN_PROTOCOL;
122  }

◆ init()

void org.keycloak.protocol.docker.installation.DockerComposeYamlInstallationProvider.init ( final Config.Scope  config)
inline
36  {
37  // no-op
38  }

◆ isDownloadOnly()

boolean org.keycloak.protocol.docker.installation.DockerComposeYamlInstallationProvider.isDownloadOnly ( )
inline
145  {
146  return true;
147  }

◆ postInit()

void org.keycloak.protocol.docker.installation.DockerComposeYamlInstallationProvider.postInit ( final KeycloakSessionFactory  factory)
inline
41  {
42  // no-op
43  }

メンバ詳解

◆ log

Logger org.keycloak.protocol.docker.installation.DockerComposeYamlInstallationProvider.log = Logger.getLogger(DockerComposeYamlInstallationProvider.class)
staticprivate

◆ ROOT_DIR

final String org.keycloak.protocol.docker.installation.DockerComposeYamlInstallationProvider.ROOT_DIR = "keycloak-docker-compose-yaml/"
static

このクラス詳解は次のファイルから抽出されました: