Prefix function names with spring-
* Add `spring-` prefix to function names Fixes: #9 This commit renames each sub-module in the common, consumer, function and supplier groups with a prefix of `spring-`. * Update README.adoc links to new prefixed names
This commit is contained in:
8
common/spring-function-test-support/build.gradle
Normal file
8
common/spring-function-test-support/build.gradle
Normal file
@@ -0,0 +1,8 @@
|
||||
dependencies {
|
||||
api 'org.junit.jupiter:junit-jupiter-api'
|
||||
api 'org.testcontainers:junit-jupiter'
|
||||
|
||||
optionalApi ftpserverCore
|
||||
optionalApi 'org.springframework.integration:spring-integration-sftp'
|
||||
optionalApi 'org.springframework:spring-websocket'
|
||||
}
|
||||
@@ -0,0 +1,154 @@
|
||||
/*
|
||||
* Copyright 2015-2016 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.cloud.fn.test.support.file.remote;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Path;
|
||||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.io.TempDir;
|
||||
|
||||
/**
|
||||
* Abstract base class for tests requiring remote file servers, e.g. (S)FTP.
|
||||
*
|
||||
* @author Gary Russell
|
||||
*
|
||||
*/
|
||||
public abstract class RemoteFileTestSupport {
|
||||
|
||||
protected static final int port = 0;
|
||||
|
||||
@TempDir
|
||||
protected static Path remoteTemporaryFolder;
|
||||
|
||||
@TempDir
|
||||
protected static Path localTemporaryFolder;
|
||||
|
||||
protected volatile File sourceRemoteDirectory;
|
||||
|
||||
protected volatile File targetRemoteDirectory;
|
||||
|
||||
protected volatile File sourceLocalDirectory;
|
||||
|
||||
protected volatile File targetLocalDirectory;
|
||||
|
||||
public File getSourceRemoteDirectory() {
|
||||
return sourceRemoteDirectory;
|
||||
}
|
||||
|
||||
public File getTargetRemoteDirectory() {
|
||||
return targetRemoteDirectory;
|
||||
}
|
||||
|
||||
public File getSourceLocalDirectory() {
|
||||
return sourceLocalDirectory;
|
||||
}
|
||||
|
||||
public File getTargetLocalDirectory() {
|
||||
return targetLocalDirectory;
|
||||
}
|
||||
|
||||
/**
|
||||
* Default implementation creates the following folder structures:
|
||||
*
|
||||
* <pre class="code">
|
||||
* $ tree remoteSource/
|
||||
* remoteSource/
|
||||
* ├── remoteSource1.txt - contains 'source1'
|
||||
* ├── remoteSource2.txt - contains 'source2'
|
||||
* remoteTarget/
|
||||
* $ tree localSource/
|
||||
* localSource/
|
||||
* ├── localSource1.txt - contains 'local1'
|
||||
* ├── localSource2.txt - contains 'local2'
|
||||
* localTarget/
|
||||
* </pre>
|
||||
*
|
||||
* The intent is tests retrieve from remoteSource and verify arrival in localTarget or send from localSource and verify
|
||||
* arrival in remoteTarget.
|
||||
* <p>
|
||||
* Subclasses can change 'remote' in these names by overriding {@link #prefix()} or override this method completely to
|
||||
* create a different structure.
|
||||
* <p>
|
||||
* While a single server exists for all tests, the directory structure is rebuilt for each test.
|
||||
* @throws IOException IO Exception.
|
||||
*/
|
||||
@BeforeEach
|
||||
public void setupFolders() throws IOException {
|
||||
String prefix = prefix();
|
||||
recursiveDelete(new File(remoteTemporaryFolder.toFile(), prefix + "Source"));
|
||||
|
||||
sourceRemoteDirectory = new File(remoteTemporaryFolder.toFile(), prefix + "Source");
|
||||
sourceRemoteDirectory.mkdirs();
|
||||
recursiveDelete(new File(remoteTemporaryFolder.toFile(), prefix + "Target"));
|
||||
targetRemoteDirectory = new File(remoteTemporaryFolder.toFile(), prefix + "Target");
|
||||
targetRemoteDirectory.mkdirs();
|
||||
recursiveDelete(new File(localTemporaryFolder.toFile(), "localSource"));
|
||||
sourceLocalDirectory = new File(localTemporaryFolder.toFile(), "localSource");
|
||||
sourceLocalDirectory.mkdirs();
|
||||
recursiveDelete(new File(localTemporaryFolder.toFile(), "localTarget"));
|
||||
targetLocalDirectory = new File(localTemporaryFolder.toFile(), "localTarget");
|
||||
targetLocalDirectory.mkdirs();
|
||||
File file = new File(sourceRemoteDirectory, prefix + "Source1.txt");
|
||||
file.createNewFile();
|
||||
FileOutputStream fos = new FileOutputStream(file);
|
||||
fos.write("source1".getBytes());
|
||||
fos.close();
|
||||
file = new File(sourceRemoteDirectory, prefix + "Source2.txt");
|
||||
file.createNewFile();
|
||||
fos = new FileOutputStream(file);
|
||||
fos.write("source2".getBytes());
|
||||
fos.close();
|
||||
file = new File(sourceLocalDirectory, "localSource1.txt");
|
||||
file.createNewFile();
|
||||
fos = new FileOutputStream(file);
|
||||
fos.write("local1".getBytes());
|
||||
fos.close();
|
||||
file = new File(sourceLocalDirectory, "localSource2.txt");
|
||||
file.createNewFile();
|
||||
fos = new FileOutputStream(file);
|
||||
fos.write("local2".getBytes());
|
||||
fos.close();
|
||||
}
|
||||
|
||||
public static void recursiveDelete(File file) {
|
||||
if (file != null && file.exists()) {
|
||||
File[] files = file.listFiles();
|
||||
if (files != null) {
|
||||
for (File fyle : files) {
|
||||
if (fyle.isDirectory()) {
|
||||
recursiveDelete(fyle);
|
||||
}
|
||||
else {
|
||||
fyle.delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
file.delete();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Prefix for directory/file structure; default 'remote'.
|
||||
* @return the prefix.
|
||||
*/
|
||||
protected String prefix() {
|
||||
return "remote";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,129 @@
|
||||
/*
|
||||
* Copyright 2015-2020 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.cloud.fn.test.support.ftp;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Arrays;
|
||||
|
||||
import org.apache.ftpserver.FtpServer;
|
||||
import org.apache.ftpserver.FtpServerFactory;
|
||||
import org.apache.ftpserver.ftplet.Authentication;
|
||||
import org.apache.ftpserver.ftplet.AuthenticationFailedException;
|
||||
import org.apache.ftpserver.ftplet.FtpException;
|
||||
import org.apache.ftpserver.ftplet.User;
|
||||
import org.apache.ftpserver.ftplet.UserManager;
|
||||
import org.apache.ftpserver.listener.ListenerFactory;
|
||||
import org.apache.ftpserver.usermanager.impl.BaseUser;
|
||||
import org.apache.ftpserver.usermanager.impl.ConcurrentLoginPermission;
|
||||
import org.apache.ftpserver.usermanager.impl.TransferRatePermission;
|
||||
import org.apache.ftpserver.usermanager.impl.WritePermission;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
|
||||
import org.springframework.cloud.fn.test.support.file.remote.RemoteFileTestSupport;
|
||||
|
||||
public class FtpTestSupport extends RemoteFileTestSupport {
|
||||
|
||||
private static final FtpServerFactory serverFactory = new FtpServerFactory();
|
||||
|
||||
private static volatile FtpServer server;
|
||||
|
||||
public String getTargetLocalDirectoryName() {
|
||||
return targetLocalDirectory.getAbsolutePath() + File.separator;
|
||||
}
|
||||
|
||||
@BeforeAll
|
||||
public static void createServer() throws Exception {
|
||||
serverFactory.setUserManager(new TestUserManager(remoteTemporaryFolder.toFile().getAbsolutePath()));
|
||||
|
||||
ListenerFactory factory = new ListenerFactory();
|
||||
factory.setPort(0);
|
||||
serverFactory.addListener("default", factory.createListener());
|
||||
|
||||
server = serverFactory.createServer();
|
||||
server.start();
|
||||
System.setProperty("ftp.factory.port", String.valueOf(serverFactory.getListener("default").getPort()));
|
||||
System.setProperty("ftp.localDir",
|
||||
localTemporaryFolder.toFile().getAbsolutePath() + File.separator + "localTarget");
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
public static void stopServer() throws Exception {
|
||||
server.stop();
|
||||
System.clearProperty("ftp.factory.port");
|
||||
System.clearProperty("ftp.localDir");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String prefix() {
|
||||
return "ftp";
|
||||
}
|
||||
|
||||
private static final class TestUserManager implements UserManager {
|
||||
|
||||
private final BaseUser testUser;
|
||||
|
||||
private TestUserManager(String homeDirectory) {
|
||||
this.testUser = new BaseUser();
|
||||
this.testUser.setAuthorities(Arrays.asList(new ConcurrentLoginPermission(1024, 1024),
|
||||
new WritePermission(),
|
||||
new TransferRatePermission(1024, 1024)));
|
||||
this.testUser.setHomeDirectory(homeDirectory);
|
||||
this.testUser.setName("TEST_USER");
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public User getUserByName(String s) throws FtpException {
|
||||
return this.testUser;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getAllUserNames() throws FtpException {
|
||||
return new String[] { "TEST_USER" };
|
||||
}
|
||||
|
||||
@Override
|
||||
public void delete(String s) throws FtpException {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void save(User user) throws FtpException {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean doesExist(String s) throws FtpException {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public User authenticate(Authentication authentication) throws AuthenticationFailedException {
|
||||
return this.testUser;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getAdminName() throws FtpException {
|
||||
return "admin";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAdmin(String s) throws FtpException {
|
||||
return s.equals("admin");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,120 @@
|
||||
/*
|
||||
* Copyright 2015-2020 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.cloud.fn.test.support.sftp;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.InputStream;
|
||||
import java.math.BigInteger;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.security.KeyFactory;
|
||||
import java.security.PublicKey;
|
||||
import java.security.spec.RSAPublicKeySpec;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
|
||||
import org.apache.sshd.common.file.virtualfs.VirtualFileSystemFactory;
|
||||
import org.apache.sshd.server.SshServer;
|
||||
import org.apache.sshd.server.keyprovider.SimpleGeneratorHostKeyProvider;
|
||||
import org.apache.sshd.sftp.server.SftpSubsystemFactory;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
|
||||
import org.springframework.cloud.fn.test.support.file.remote.RemoteFileTestSupport;
|
||||
import org.springframework.core.io.ClassPathResource;
|
||||
import org.springframework.util.Base64Utils;
|
||||
import org.springframework.util.FileCopyUtils;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
/**
|
||||
* Provides an embedded SFTP Server for test cases.
|
||||
*
|
||||
* @author David Turanski
|
||||
* @author Gary Russell
|
||||
* @author Artem Bilan
|
||||
*/
|
||||
public class SftpTestSupport extends RemoteFileTestSupport {
|
||||
|
||||
private static SshServer server;
|
||||
|
||||
@Override
|
||||
public String prefix() {
|
||||
return "sftp";
|
||||
}
|
||||
|
||||
@BeforeAll
|
||||
public static void createServer() throws Exception {
|
||||
server = SshServer.setUpDefaultServer();
|
||||
server.setPasswordAuthenticator((username, password, session) ->
|
||||
StringUtils.hasText(password) && !"badPassword".equals(password)); // fail if pub key validation failed
|
||||
server.setPublickeyAuthenticator((username, key, session) -> key.equals(decodePublicKey("id_rsa_pp.pub")));
|
||||
server.setPort(0);
|
||||
server.setKeyPairProvider(new SimpleGeneratorHostKeyProvider(new File("hostkey.ser").toPath()));
|
||||
server.setSubsystemFactories(Collections.singletonList(new SftpSubsystemFactory()));
|
||||
server.setFileSystemFactory(new VirtualFileSystemFactory(remoteTemporaryFolder));
|
||||
server.start();
|
||||
System.setProperty("sftp.factory.port", String.valueOf(server.getPort()));
|
||||
System.setProperty("sftp.consumer.localDir",
|
||||
localTemporaryFolder + File.separator + "localTarget");
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
public static void stopServer() throws Exception {
|
||||
server.stop();
|
||||
File hostkey = new File("hostkey.ser");
|
||||
if (hostkey.exists()) {
|
||||
hostkey.delete();
|
||||
}
|
||||
System.clearProperty("sftp.factory.port");
|
||||
System.clearProperty("sftp.consumer.localDir");
|
||||
}
|
||||
|
||||
private static PublicKey decodePublicKey(String key) {
|
||||
try {
|
||||
InputStream stream = new ClassPathResource(key).getInputStream();
|
||||
byte[] keyBytes = FileCopyUtils.copyToByteArray(stream);
|
||||
// strip any newline chars
|
||||
while (keyBytes[keyBytes.length - 1] == 0x0a || keyBytes[keyBytes.length - 1] == 0x0d) {
|
||||
keyBytes = Arrays.copyOf(keyBytes, keyBytes.length - 1);
|
||||
}
|
||||
byte[] decodeBuffer = Base64Utils.decode(keyBytes);
|
||||
ByteBuffer bb = ByteBuffer.wrap(decodeBuffer);
|
||||
int len = bb.getInt();
|
||||
byte[] type = new byte[len];
|
||||
bb.get(type);
|
||||
if ("ssh-rsa".equals(new String(type))) {
|
||||
BigInteger e = decodeBigInt(bb);
|
||||
BigInteger m = decodeBigInt(bb);
|
||||
RSAPublicKeySpec spec = new RSAPublicKeySpec(m, e);
|
||||
return KeyFactory.getInstance("RSA").generatePublic(spec);
|
||||
|
||||
}
|
||||
else {
|
||||
throw new IllegalArgumentException("Only supports RSA");
|
||||
}
|
||||
}
|
||||
catch (Exception e) {
|
||||
throw new IllegalStateException("Failed to determine the test public key", e);
|
||||
}
|
||||
}
|
||||
|
||||
private static BigInteger decodeBigInt(ByteBuffer bb) {
|
||||
int len = bb.getInt();
|
||||
byte[] bytes = new byte[len];
|
||||
bb.get(bytes);
|
||||
return new BigInteger(bytes);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
/*
|
||||
* Copyright 2014-2020 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.cloud.fn.test.support.websocket;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CountDownLatch;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import org.springframework.web.socket.TextMessage;
|
||||
import org.springframework.web.socket.WebSocketSession;
|
||||
import org.springframework.web.socket.handler.AbstractWebSocketHandler;
|
||||
|
||||
public class WebsocketConsumerClientHandler extends AbstractWebSocketHandler {
|
||||
|
||||
final List<String> receivedMessages = new ArrayList<>();
|
||||
|
||||
final int waitMessageCount;
|
||||
|
||||
final CountDownLatch latch;
|
||||
|
||||
final long timeout;
|
||||
|
||||
final String id;
|
||||
|
||||
public WebsocketConsumerClientHandler(String id, int waitMessageCount, long timeout) {
|
||||
this.id = id;
|
||||
this.waitMessageCount = waitMessageCount;
|
||||
this.latch = new CountDownLatch(waitMessageCount);
|
||||
this.timeout = timeout;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleTextMessage(WebSocketSession session, TextMessage message) {
|
||||
receivedMessages.add(message.getPayload());
|
||||
latch.countDown();
|
||||
}
|
||||
|
||||
public void await() throws InterruptedException {
|
||||
latch.await(timeout, TimeUnit.MILLISECONDS);
|
||||
}
|
||||
|
||||
public List<String> getReceivedMessages() {
|
||||
return receivedMessages;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
/*
|
||||
* Copyright 2014-2022 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.cloud.fn.test.support.xmpp;
|
||||
|
||||
import java.time.Duration;
|
||||
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.testcontainers.containers.BindMode;
|
||||
import org.testcontainers.containers.GenericContainer;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
/**
|
||||
* @author Chris Bono
|
||||
*/
|
||||
@Testcontainers(disabledWithoutDocker = true)
|
||||
public interface XmppTestContainerSupport {
|
||||
|
||||
/**
|
||||
* Default XMPP Host.
|
||||
*/
|
||||
String XMPP_HOST = "localhost";
|
||||
|
||||
/**
|
||||
* Sample John User setup by config.
|
||||
*/
|
||||
String JOHN_USER = "john";
|
||||
|
||||
/**
|
||||
* Sample Jane User setup by config.
|
||||
*/
|
||||
String JANE_USER = "jane";
|
||||
|
||||
/**
|
||||
* Password for sample users.
|
||||
*/
|
||||
String USER_PW = "secret";
|
||||
|
||||
/**
|
||||
* Default Service Name.
|
||||
*/
|
||||
String SERVICE_NAME = "localhost";
|
||||
|
||||
/**
|
||||
* The container.
|
||||
*/
|
||||
GenericContainer<?> XMPP_CONTAINER = new GenericContainer<>("fishbowler/openfire:v4.7.0")
|
||||
.withExposedPorts(5222)
|
||||
.withClasspathResourceMapping("xmpp/conf", "/var/lib/openfire/conf", BindMode.READ_ONLY)
|
||||
.withCommand("-demoboot")
|
||||
.withStartupTimeout(Duration.ofSeconds(120))
|
||||
.withStartupAttempts(3);
|
||||
|
||||
@BeforeAll
|
||||
static void startContainer() {
|
||||
XMPP_CONTAINER.start();
|
||||
}
|
||||
|
||||
static String getXmppHost() {
|
||||
return XMPP_HOST;
|
||||
}
|
||||
|
||||
static Integer getXmppMappedPort() {
|
||||
return XMPP_CONTAINER.getFirstMappedPort();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
Proc-Type: 4,ENCRYPTED
|
||||
DEK-Info: AES-128-CBC,26D1755B05980BA01B1E8D3B65EF98D3
|
||||
|
||||
J5fMQDf0HrwcnfYujq+q05GEOSEMVWMU0vr0hBtz2WvUeaFBBVAvUWbJo7PHTdDV
|
||||
vEdSv+k8FazOkIZpeOW26pKNaLSuFfN+lgtAW4p4yqGQhbL8byh+Ka5uGaPH1xQj
|
||||
o4exMFqbwFaHG10LJoPp5NnK+T64w8McJEihBPxv/qwtsz0YhhDVl/1eSwKsGa5y
|
||||
Usfdv0QbjNDtpV7+sy7OunpaaKjb8iQ/PbFDsX0TSiy6jJflPwCYVUoh3jCEJze3
|
||||
OUKwoQu7AiHmUrsnLtDuL49Q5hV+f9+IPJlzSqU5Fu8PlfCowH+e8WWLVQkh7Hht
|
||||
iwOQs5UIWH+Nzbguu3Gbph5lqMtgkQwK6/PSFLQXuJmf9l6eo7E+Wh5mFWwoIENT
|
||||
mKUlgVU0ymajPHcA7uOVXl5XX+Mt0DiMdGiB4N6RJ1OjWgqlRSJbVmGPrnZWmjdW
|
||||
VltNux6JrO1bOgwtApCouDZhnP7/JDhM2PCa/F2+XCc6s8Hnmmt+gBw6IM4fb+YH
|
||||
2gf1jx5Onp1yuBGe6tvbrfPAdXYU1R3kd2+Yf5mdsu2+xiC4wBKSfjleoHN4xJ/b
|
||||
wopjQvGV5dj/VjdUt99lMHGWPr+p4NmdEBoriCgjYuRjRDvCiTV2qKZe2MU+0CVE
|
||||
/jCA8iMRQnx3LMjnmJXP/96j2fyXHMowClTF43Cvdc5jh622WITOOFAIq9RfIXdS
|
||||
47G6FAN54V+Qt0pXEgIOmvG+B2C24A041fo3jUPZxFRSYYuv9vG6QJby3kCsaqqt
|
||||
ngYs2JSKx9CfOfGfyPbNt2/CO/bBsXgYzLR7REx5My1Mp9YsDmeIgbcd2V5hw/Me
|
||||
rlSXrG4Eqs9gRDrBUvsydUOJFC1PlnIXH3VSBc6X9o4n2H6XECOsJQSeXLCaeMav
|
||||
deKb0r1HvdbAYrdqw6mRM8Ok3fpSoD3mUsZQ8fp3luO3tHL1lddxHb7EsKzt/ubh
|
||||
B9lEzDTcILlINlCl41X0OZKr/c+Ec8EdaSvITYJj0fvaZmDF7Wcs/dDWNft2XUaD
|
||||
VcptOKbQVE1ufbrc2s1BdKOriAC6dSVKVDrAUQD/MlhT3p/YwbjSY2MqwRKztWRv
|
||||
sA1Kqjg1IdUQzQizRKuHa322qnduLjHy0rb0ElrMpFe3B+OcIPs1E7Gvo4BVQ5jU
|
||||
5GqHm83iaFIQaXmEsrVtCOBygVf00+WNRV3WFTOP9UEWFgtxsaHAU8UZhsDbKcZ5
|
||||
l/w6kQdNElQuJA+1n1OxRZ5wIpfrRIMaxBQg2plUTVb9Tgz1qTZxHIEYPAAePfvX
|
||||
tDn9SBiktj/8dhy1T0ko89yXCekpGxkU9rbmAd4Lrp6Wbc6+bKt4KzAqw319qq9U
|
||||
Pslq7EKNM0Zq5pfwn1MRjzvmyHxz2sYHeij0CmuZY7xuOa4NzXt1vr6nSlIpX77W
|
||||
ng/Rnd7qpyG2IWYihi6ztFHyj9h3FEcBHMk4JINLcdYOxXICz3KsRMfntrwQ4E6O
|
||||
NFJ3fPpVNkk4GZcxy6idNkUBz1s8ixVWC8yi36byxE+TTRtcvqXQnJVgs63vMUlC
|
||||
HVwaGau4YeUp4Nj2ZO44Srd/kQRy8yuCOPDdlJEiO6eDD4+XKedJQg1LuGeoXMVn
|
||||
-----END RSA PRIVATE KEY-----
|
||||
@@ -0,0 +1 @@
|
||||
AAAAB3NzaC1yc2EAAAADAQABAAABAQC6MIzgyVi8G1+HRhFHPWRH+3w/8/uxtiuIfb4puVPjHI53Lvf5odzfhv0T6Z2/jSXmI3I6dpjbsgiptdCTX4kqUFLXxkuJR4LHatNtgO1w32aVIdAvfj7KtrL3SmP2XWqQGVcUWHEn2H1RHFHKdC6ArYFb1X8p5N/BHSQjuttaeVi9FsDxvC5euIbtDEEJmmvjjfWlI1m/6qCqMYxDWA9i9APU/rB0QwFNUQ6HuZ2QzEaU/hQMGmqgW5o1I/W8JR0bqis8wZQDLv1fwCkXpWG5BAuiJH+FJMxRAkfEMBpVwO7Sl0ufePVuSM2BMAAe+4a75sVp8ahbOId6y0GUTeJl
|
||||
@@ -0,0 +1,12 @@
|
||||
<configuration>
|
||||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
<root level="WARN">
|
||||
<appender-ref ref="STDOUT"/>
|
||||
</root>
|
||||
<logger name="org.testcontainers" level="ERROR"/>
|
||||
<logger name="com.github.dockerjava" level="ERROR"/>
|
||||
</configuration>
|
||||
@@ -0,0 +1,59 @@
|
||||
|
||||
<available>
|
||||
<plugin name="Bookmarks" latest="1.1.1" changelog="https://igniterealtime.org/projects/openfire/plugins/1.1.1/bookmarks/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/1.1.1/bookmarks.jar" author="Ignite Realtime" description="Allows clients to store URL and group chat bookmarks (XEP-0048)" icon="https://igniterealtime.org/projects/openfire/plugins/1.1.1/bookmarks/logo_small.gif" minServerVersion="4.0.0" readme="https://igniterealtime.org/projects/openfire/plugins/1.1.1/bookmarks/readme.html" fileSize="1683910"/>
|
||||
<plugin name="External Service Discovery" latest="1.0.1" changelog="https://igniterealtime.org/projects/openfire/plugins/1.0.1/externalservicediscovery/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/1.0.1/externalservicediscovery.jar" author="Guus der Kinderen" description="Allows XMPP entities to discover services external to the XMPP network, such as STUN and TURN servers." icon="https://igniterealtime.org/projects/openfire/plugins/1.0.1/externalservicediscovery/logo_small.png" minServerVersion="4.2.0" readme="https://igniterealtime.org/projects/openfire/plugins/1.0.1/externalservicediscovery/readme.html" fileSize="95337"/>
|
||||
<plugin name="MUC Service Discovery Extensions" latest="1.0.0" changelog="https://igniterealtime.org/projects/openfire/plugins/1.0.0/mucextinfo/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/1.0.0/mucextinfo.jar" author="Guus der Kinderen" description="Allows an admin to configure Extended Service Discovery information to Multi User Chat entities." minServerVersion="4.5.0" readme="https://igniterealtime.org/projects/openfire/plugins/1.0.0/mucextinfo/readme.html" fileSize="52992"/>
|
||||
<plugin name="SIP Phone Plugin" latest="1.2.6" changelog="https://igniterealtime.org/projects/openfire/plugins/1.2.6/sip/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/1.2.6/sip.jar" author="Ignite Realtime" description="Provides support for SIP account management" icon="https://igniterealtime.org/projects/openfire/plugins/1.2.6/sip/logo_small.gif" minServerVersion="4.0.0" readme="https://igniterealtime.org/projects/openfire/plugins/1.2.6/sip/readme.html" fileSize="1159930"/>
|
||||
<plugin name="Fastpath Service" latest="4.4.5" changelog="https://igniterealtime.org/projects/openfire/plugins/4.4.5/fastpath/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/4.4.5/fastpath.jar" author="Jive Software" description="Support for managed queued chat requests, such as a support team might use." icon="https://igniterealtime.org/projects/openfire/plugins/4.4.5/fastpath/logo_small.gif" minServerVersion="4.1.1" readme="https://igniterealtime.org/projects/openfire/plugins/4.4.5/fastpath/readme.html" fileSize="1698700"/>
|
||||
<plugin name="TikiToken" latest="0.2.0" changelog="https://igniterealtime.org/projects/openfire/plugins/0.2.0/tikitoken/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/0.2.0/tikitoken.jar" author="Tiki Wiki CMS Groupware" description="Allows users to authenticate with a Tiki token." icon="https://igniterealtime.org/projects/openfire/plugins/0.2.0/tikitoken/logo_small.png" minServerVersion="4.1.3" readme="https://igniterealtime.org/projects/openfire/plugins/0.2.0/tikitoken/readme.html" licenseType="gpl" fileSize="358495"/>
|
||||
<plugin name="HTTP File Upload" latest="1.1.5" changelog="https://igniterealtime.org/projects/openfire/plugins/1.1.5/httpfileupload/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/1.1.5/httpfileupload.jar" author="Guus der Kinderen" description="Allows clients to share files, as described in the XEP-0363 'HTTP File Upload' specification." icon="https://igniterealtime.org/projects/openfire/plugins/1.1.5/httpfileupload/logo_small.png" minServerVersion="4.1.0" readme="https://igniterealtime.org/projects/openfire/plugins/1.1.5/httpfileupload/readme.html" fileSize="6277079"/>
|
||||
<plugin name="Hazelcast Plugin" latest="2.6.0" changelog="https://igniterealtime.org/projects/openfire/plugins/2.6.0/hazelcast/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/2.6.0/hazelcast.jar" author="Ignite Realtime" description="Adds clustering support" icon="https://igniterealtime.org/projects/openfire/plugins/2.6.0/hazelcast/logo_small.png" minServerVersion="4.7.0" readme="https://igniterealtime.org/projects/openfire/plugins/2.6.0/hazelcast/readme.html" fileSize="10346090"/>
|
||||
<plugin name="Draw-IO" latest="0.0.1" changelog="https://igniterealtime.org/projects/openfire/plugins/0.0.1/draw/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/0.0.1/draw.jar" author="Ignite Realtime" description="Web Diagramming Tool that uses SVG and HTML for rendering" icon="https://igniterealtime.org/projects/openfire/plugins/0.0.1/draw/logo_small.gif" minServerVersion="4.0.0" readme="https://igniterealtime.org/projects/openfire/plugins/0.0.1/draw/readme.html" licenseType="Apache 2.0" fileSize="40136123"/>
|
||||
<plugin name="IPFS" latest="0.0.1" changelog="https://igniterealtime.org/projects/openfire/plugins/0.0.1/ipfs/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/0.0.1/ipfs.jar" author="igniterealtime.org" description="Enables Openfire to become an IPFS node." icon="https://igniterealtime.org/projects/openfire/plugins/0.0.1/ipfs/logo_small.gif" minServerVersion="4.0.0" readme="https://igniterealtime.org/projects/openfire/plugins/0.0.1/ipfs/readme.html" licenseType="Apache 2.0" fileSize="31727587"/>
|
||||
<plugin name="Registration" latest="1.7.3" changelog="https://igniterealtime.org/projects/openfire/plugins/1.7.3/registration/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/1.7.3/registration.jar" author="Ryan Graham" description="Performs various actions whenever a new user account is created." icon="https://igniterealtime.org/projects/openfire/plugins/1.7.3/registration/logo_small.gif" minServerVersion="4.0.0" readme="https://igniterealtime.org/projects/openfire/plugins/1.7.3/registration/readme.html" fileSize="60708"/>
|
||||
<plugin name="Search" latest="1.7.3" changelog="https://igniterealtime.org/projects/openfire/plugins/1.7.3/search/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/1.7.3/search.jar" author="Ryan Graham" description="Provides support for Jabber Search (XEP-0055)" icon="https://igniterealtime.org/projects/openfire/plugins/1.7.3/search/logo_small.gif" minServerVersion="4.1.1" readme="https://igniterealtime.org/projects/openfire/plugins/1.7.3/search/readme.html" fileSize="71795"/>
|
||||
<plugin name="Client Control" latest="2.1.8" changelog="https://igniterealtime.org/projects/openfire/plugins/2.1.8/clientControl/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/2.1.8/clientControl.jar" author="Jive Software" description="Controls clients allowed to connect and available features" icon="https://igniterealtime.org/projects/openfire/plugins/2.1.8/clientControl/logo_small.gif" minServerVersion="4.0.0" readme="https://igniterealtime.org/projects/openfire/plugins/2.1.8/clientControl/readme.html" fileSize="355175"/>
|
||||
<plugin name="Candy" latest="0.0.0" changelog="https://igniterealtime.org/projects/openfire/plugins/2.2.0-release-3/candy/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/2.2.0-release-3/candy.jar" author="Guus der Kinderen" description="Adds the (third-party) Candy web client to Openfire." icon="https://igniterealtime.org/projects/openfire/plugins/2.2.0-release-3/candy/logo_small.png" minServerVersion="4.7.0" readme="https://igniterealtime.org/projects/openfire/plugins/2.2.0-release-3/candy/readme.html" fileSize="591517"/>
|
||||
<plugin name="Presence Service" latest="1.7.1" changelog="https://igniterealtime.org/projects/openfire/plugins/1.7.1/presence/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/1.7.1/presence.jar" author="Jive Software" description="Exposes presence information through HTTP." icon="https://igniterealtime.org/projects/openfire/plugins/1.7.1/presence/logo_small.gif" minServerVersion="4.1.1" readme="https://igniterealtime.org/projects/openfire/plugins/1.7.1/presence/readme.html" fileSize="29451"/>
|
||||
<plugin name="Subscription" latest="1.4.1" changelog="https://igniterealtime.org/projects/openfire/plugins/1.4.1/subscription/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/1.4.1/subscription.jar" author="Ryan Graham" description="Automatically accepts or rejects subscription requests" icon="https://igniterealtime.org/projects/openfire/plugins/1.4.1/subscription/logo_small.gif" minServerVersion="4.0.0" readme="https://igniterealtime.org/projects/openfire/plugins/1.4.1/subscription/readme.html" fileSize="20989"/>
|
||||
<plugin name="inVerse" latest="9.1.1 Release 1" changelog="https://igniterealtime.org/projects/openfire/plugins/9.1.1.1/inverse/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/9.1.1.1/inverse.jar" author="Guus der Kinderen" description="Adds the (third-party, Converse-based) inVerse web client to Openfire." icon="https://igniterealtime.org/projects/openfire/plugins/9.1.1.1/inverse/logo_small.png" minServerVersion="4.1.5" readme="https://igniterealtime.org/projects/openfire/plugins/9.1.1.1/inverse/readme.html" fileSize="6031840"/>
|
||||
<plugin name="Push Notification" latest="0.9.1" changelog="https://igniterealtime.org/projects/openfire/plugins/0.9.1/pushnotification/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/0.9.1/pushnotification.jar" author="Guus der Kinderen" description="Adds Push Notification (XEP-0357) support to Openfire." icon="https://igniterealtime.org/projects/openfire/plugins/0.9.1/pushnotification/logo_small.png" minServerVersion="4.6.4" readme="https://igniterealtime.org/projects/openfire/plugins/0.9.1/pushnotification/readme.html" fileSize="25753"/>
|
||||
<plugin name="Email on Away" latest="1.0.3" changelog="https://igniterealtime.org/projects/openfire/plugins/1.0.3/emailOnAway/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/1.0.3/emailOnAway.jar" author="Nick Mossie" description="Messages sent to alternate location when recipient is away" minServerVersion="2.3.0" readme="https://igniterealtime.org/projects/openfire/plugins/1.0.3/emailOnAway/readme.html" fileSize="5923"/>
|
||||
<plugin name="Certificate Manager" latest="1.1.0" changelog="https://igniterealtime.org/projects/openfire/plugins/1.1.0/certificatemanager/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/1.1.0/certificatemanager.jar" author="Guus der Kinderen" description="Adds certificate management features." icon="https://igniterealtime.org/projects/openfire/plugins/1.1.0/certificatemanager/logo_small.png" minServerVersion="4.3.0 Alpha" readme="https://igniterealtime.org/projects/openfire/plugins/1.1.0/certificatemanager/readme.html" fileSize="47750"/>
|
||||
<plugin name="Random Avatar Generator Plugin" latest="1.0.0" changelog="https://igniterealtime.org/projects/openfire/plugins/1.0.0/randomavatar/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/1.0.0/randomavatar.jar" author="Guus der Kinderen" description="Generates semi-random avatar images." icon="https://igniterealtime.org/projects/openfire/plugins/1.0.0/randomavatar/logo_small.gif" minServerVersion="4.1.5" readme="https://igniterealtime.org/projects/openfire/plugins/1.0.0/randomavatar/readme.html" fileSize="423022"/>
|
||||
<plugin name="JmxWeb Plugin" latest="0.9.0" changelog="https://igniterealtime.org/projects/openfire/plugins/0.9.0/jmxweb/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/0.9.0/jmxweb.jar" author="igniterealtime.org" description="JmxWeb plugin is web based platform for managing and monitoring openfire via JMX." minServerVersion="4.3.0" readme="https://igniterealtime.org/projects/openfire/plugins/0.9.0/jmxweb/readme.html" licenseType="Apache 2.0" fileSize="20177522"/>
|
||||
<plugin name="MUC Service" latest="0.2.3" changelog="https://igniterealtime.org/projects/openfire/plugins/0.2.3/mucservice/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/0.2.3/mucservice.jar" author="Roman Soldatow" description="MUC administration over REST Interface" icon="https://igniterealtime.org/projects/openfire/plugins/0.2.3/mucservice/logo_small.gif" minServerVersion="3.9.1" readme="https://igniterealtime.org/projects/openfire/plugins/0.2.3/mucservice/readme.html" fileSize="2568312"/>
|
||||
<plugin name="User Status Plugin" latest="1.2.2" changelog="https://igniterealtime.org/projects/openfire/plugins/1.2.2/userstatus/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/1.2.2/userstatus.jar" author="Stefan Reuter" description="Openfire plugin to save the user status to the database." icon="https://igniterealtime.org/projects/openfire/plugins/1.2.2/userstatus/logo_small.gif" minServerVersion="4.0.0" readme="https://igniterealtime.org/projects/openfire/plugins/1.2.2/userstatus/readme.html" licenseType="gpl" fileSize="28372"/>
|
||||
<plugin name="GoJara" latest="2.2.3" changelog="https://igniterealtime.org/projects/openfire/plugins/2.2.3/gojara/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/2.2.3/gojara.jar" author="Holger Bergunde / Daniel Henninger / Axel-F. Brand" description="XEP-0321: Remote Roster Management support" icon="https://igniterealtime.org/projects/openfire/plugins/2.2.3/gojara/logo_small.png" minServerVersion="4.0.0" readme="https://igniterealtime.org/projects/openfire/plugins/2.2.3/gojara/readme.html" fileSize="345882"/>
|
||||
<plugin name="Spam blacklist" latest="1.0.0" changelog="https://igniterealtime.org/projects/openfire/plugins/1.0.0/blacklistspam/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/1.0.0/blacklistspam.jar" author="Ignite Realtime" description="Uses an external blacklist to reject traffic from specific addresses." icon="https://igniterealtime.org/projects/openfire/plugins/1.0.0/blacklistspam/logo_small.png" readme="https://igniterealtime.org/projects/openfire/plugins/1.0.0/blacklistspam/readme.html" fileSize="15946"/>
|
||||
<plugin name="User Service" latest="2.1.2" changelog="https://igniterealtime.org/projects/openfire/plugins/2.1.2/userservice/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/2.1.2/userservice.jar" author="Roman Soldatow, Justin Hunt" description="(Deprecated) Please use the REST API Plugin. Allows administration of users via HTTP requests." icon="https://igniterealtime.org/projects/openfire/plugins/2.1.2/userservice/logo_small.gif" minServerVersion="4.0.0" readme="https://igniterealtime.org/projects/openfire/plugins/2.1.2/userservice/readme.html" fileSize="2414018"/>
|
||||
<plugin name="Packet Filter" latest="3.3.1" changelog="https://igniterealtime.org/projects/openfire/plugins/3.3.1/packetFilter/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/3.3.1/packetFilter.jar" author="Nate Putnam" description="Rules to enforce ethical communication" icon="https://igniterealtime.org/projects/openfire/plugins/3.3.1/packetFilter/logo_small.gif" minServerVersion="4.0.0" readme="https://igniterealtime.org/projects/openfire/plugins/3.3.1/packetFilter/readme.html" fileSize="106311"/>
|
||||
<plugin name="User Creation" latest="1.4.0" changelog="https://igniterealtime.org/projects/openfire/plugins/1.4.0/userCreation/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/1.4.0/userCreation.jar" author="Jive Software" description="Creates users and populates rosters." minServerVersion="4.3.0" fileSize="1643940"/>
|
||||
<plugin name="Openfire WebSocket" latest="1.2.1" changelog="https://igniterealtime.org/projects/openfire/plugins/1.2.1/websocket/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/1.2.1/websocket.jar" author="Tom Evans" description="Provides WebSocket support for Openfire." icon="https://igniterealtime.org/projects/openfire/plugins/1.2.1/websocket/logo_small.gif" minServerVersion="4.1.5" readme="https://igniterealtime.org/projects/openfire/plugins/1.2.1/websocket/readme.html" fileSize="122092"/>
|
||||
<plugin name="Email Listener" latest="1.2.1" changelog="https://igniterealtime.org/projects/openfire/plugins/1.2.1/emailListener/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/1.2.1/emailListener.jar" author="Jive Software" description="Listens for emails and sends alerts to specific users." icon="https://igniterealtime.org/projects/openfire/plugins/1.2.1/emailListener/logo_small.gif" minServerVersion="4.0.0" readme="https://igniterealtime.org/projects/openfire/plugins/1.2.1/emailListener/readme.html" fileSize="21292"/>
|
||||
<plugin name="PionTurn" latest="0.0.4" changelog="https://igniterealtime.org/projects/openfire/plugins/0.0.4/pionturn/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/0.0.4/pionturn.jar" author="Ignite Realtime" description="Provides a TURN/STUN Server for Openfire" icon="https://igniterealtime.org/projects/openfire/plugins/0.0.4/pionturn/logo_small.gif" minServerVersion="4.0.0" readme="https://igniterealtime.org/projects/openfire/plugins/0.0.4/pionturn/readme.html" licenseType="Apache 2.0" fileSize="5914466"/>
|
||||
<plugin name="Thread Dump" latest="1.1.0" changelog="https://igniterealtime.org/projects/openfire/plugins/1.1.0/threaddump/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/1.1.0/threaddump.jar" author="Ignite Realtime" description="A plugin that can be used to generate diagnostics." icon="https://igniterealtime.org/projects/openfire/plugins/1.1.0/threaddump/logo_small.png" readme="https://igniterealtime.org/projects/openfire/plugins/1.1.0/threaddump/readme.html" fileSize="53219"/>
|
||||
<plugin name="Avatar Resizer" latest="1.0.1" changelog="https://igniterealtime.org/projects/openfire/plugins/1.0.1/avatarResizer/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/1.0.1/avatarResizer.jar" author="Guus der Kinderen" description="Ensures vCard-based avatars are not to large for comfort." icon="https://igniterealtime.org/projects/openfire/plugins/1.0.1/avatarResizer/logo_small.gif" readme="https://igniterealtime.org/projects/openfire/plugins/1.0.1/avatarResizer/readme.html" fileSize="10624"/>
|
||||
<plugin name="Load Statistic" latest="1.2.1" changelog="https://igniterealtime.org/projects/openfire/plugins/1.2.1/loadStats/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/1.2.1/loadStats.jar" author="Jive Software" description="Logs load statistics to a file" icon="https://igniterealtime.org/projects/openfire/plugins/1.2.1/loadStats/logo_small.gif" minServerVersion="3.9.0" readme="https://igniterealtime.org/projects/openfire/plugins/1.2.1/loadStats/readme.html" fileSize="11888"/>
|
||||
<plugin name="STUN server plugin" latest="1.2.3" changelog="https://igniterealtime.org/projects/openfire/plugins/1.2.3/stunserver/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/1.2.3/stunserver.jar" author="Ignite Realtime" description="Adds STUN functionality to Openfire" icon="https://igniterealtime.org/projects/openfire/plugins/1.2.3/stunserver/logo_small.gif" minServerVersion="4.0.0" readme="https://igniterealtime.org/projects/openfire/plugins/1.2.3/stunserver/readme.html" fileSize="125304"/>
|
||||
<plugin name="JID Validation" latest="0.0.0" url="https://igniterealtime.org/projects/openfire/plugins/1.0/jidvalidation.jar" author="Manasse Ngudia" description="Provides support for JID Validation Service" minServerVersion="4.4.0" readme="https://igniterealtime.org/projects/openfire/plugins/1.0/jidvalidation/readme.html" licenseType="gpl" fileSize="9947"/>
|
||||
<plugin name="Content Filter" latest="1.8.1" changelog="https://igniterealtime.org/projects/openfire/plugins/1.8.1/contentFilter/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/1.8.1/contentFilter.jar" author="Conor Hayes" description="Scans message packets for defined patterns" icon="https://igniterealtime.org/projects/openfire/plugins/1.8.1/contentFilter/logo_small.gif" minServerVersion="4.0.0" readme="https://igniterealtime.org/projects/openfire/plugins/1.8.1/contentFilter/readme.html" fileSize="73660"/>
|
||||
<plugin name="REST API" latest="1.10.0" changelog="https://igniterealtime.org/projects/openfire/plugins/1.10.0/restAPI/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/1.10.0/restAPI.jar" author="Roman Soldatow" description="Allows administration over a RESTful API." icon="https://igniterealtime.org/projects/openfire/plugins/1.10.0/restAPI/logo_small.gif" minServerVersion="4.7.0" readme="https://igniterealtime.org/projects/openfire/plugins/1.10.0/restAPI/readme.html" fileSize="15341133"/>
|
||||
<plugin name="Broadcast" latest="1.9.2" changelog="https://igniterealtime.org/projects/openfire/plugins/1.9.2/broadcast/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/1.9.2/broadcast.jar" author="Ignite Realtime" description="The broadcast plugin broadcasts messages to all users in the system or to specific groups" icon="https://igniterealtime.org/projects/openfire/plugins/1.9.2/broadcast/logo_small.gif" minServerVersion="4.0.0" readme="https://igniterealtime.org/projects/openfire/plugins/1.9.2/broadcast/readme.html" fileSize="15163"/>
|
||||
<plugin name="JSXC" latest="4.4.0 Release 1" changelog="https://igniterealtime.org/projects/openfire/plugins/4.4.0.1/jsxc/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/4.4.0.1/jsxc.jar" author="Guus der Kinderen" description="Adds the (third-party) JSXC web client to Openfire." icon="https://igniterealtime.org/projects/openfire/plugins/4.4.0.1/jsxc/logo_small.png" minServerVersion="4.4.0" readme="https://igniterealtime.org/projects/openfire/plugins/4.4.0.1/jsxc/readme.html" fileSize="2597663"/>
|
||||
<plugin name="Non-SASL Authentication" latest="1.0.0" changelog="https://igniterealtime.org/projects/openfire/plugins/1.0.0/nonSaslAuthentication/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/1.0.0/nonSaslAuthentication.jar" author="Guus der Kinderen" description="This plugin implements a the (obsolete!) XEP-0078 specification for authentication using the jabber:iq:auth namespace." minServerVersion="4.1.0 Alpha" readme="https://igniterealtime.org/projects/openfire/plugins/1.0.0/nonSaslAuthentication/readme.html" fileSize="10803"/>
|
||||
<plugin name="MotD (Message of the Day)" latest="1.2.3" changelog="https://igniterealtime.org/projects/openfire/plugins/1.2.3/motd/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/1.2.3/motd.jar" author="Ryan Graham" description="Allows admins to have a message sent to users each time they log in." icon="https://igniterealtime.org/projects/openfire/plugins/1.2.3/motd/logo_small.gif" minServerVersion="4.0.0" readme="https://igniterealtime.org/projects/openfire/plugins/1.2.3/motd/readme.html" fileSize="31649"/>
|
||||
<plugin name="CallbackOnOffline" latest="1.2.1" changelog="https://igniterealtime.org/projects/openfire/plugins/1.2.1/callbackOnOffline/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/1.2.1/callbackOnOffline.jar" author="Pavel Goski / Krzysztof Misztal" description="Url is called when recipient is offline" minServerVersion="4.0.0" readme="https://igniterealtime.org/projects/openfire/plugins/1.2.1/callbackOnOffline/readme.html" fileSize="4322732"/>
|
||||
<plugin name="Rdp" latest="0.0.1" changelog="https://igniterealtime.org/projects/openfire/plugins/0.0.1/rdp/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/0.0.1/rdp.jar" author="igniterealtime.org" description="RDP Gateway for Remote Desktop Control Changelog" minServerVersion="4.0.0" readme="https://igniterealtime.org/projects/openfire/plugins/0.0.1/rdp/readme.html" licenseType="Apache 2.0" fileSize="27297204"/>
|
||||
<plugin name="XML Debugger Plugin" latest="1.7.5" changelog="https://igniterealtime.org/projects/openfire/plugins/1.7.5/xmldebugger/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/1.7.5/xmldebugger.jar" author="Ignite Realtime" description="Prints XML traffic to the stdout (raw and interpreted XML)" minServerVersion="4.5.0" readme="https://igniterealtime.org/projects/openfire/plugins/1.7.5/xmldebugger/readme.html" fileSize="25828"/>
|
||||
<plugin name="Push Server" latest="1.0.0" changelog="https://igniterealtime.org/projects/openfire/plugins/1.0.0/pushserver/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/1.0.0/pushserver.jar" author="Busoft Teknoloji A.Ş." description="Send push notifications to mobile devices through FCM or APNS" icon="https://igniterealtime.org/projects/openfire/plugins/1.0.0/pushserver/logo_small.png" minServerVersion="4.3.0" readme="https://igniterealtime.org/projects/openfire/plugins/1.0.0/pushserver/readme.html" fileSize="10321722"/>
|
||||
<plugin name="DB Access" latest="1.2.3" changelog="https://igniterealtime.org/projects/openfire/plugins/1.2.3/dbaccess/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/1.2.3/dbaccess.jar" author="Daniel Henninger" description="Provides administrators with a simple direct access interface to their Openfire DB." icon="https://igniterealtime.org/projects/openfire/plugins/1.2.3/dbaccess/logo_small.gif" minServerVersion="4.0.0" readme="https://igniterealtime.org/projects/openfire/plugins/1.2.3/dbaccess/readme.html" fileSize="11766"/>
|
||||
<plugin name="User Import Export" latest="2.7.0" changelog="https://igniterealtime.org/projects/openfire/plugins/2.7.0/userImportExport/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/2.7.0/userImportExport.jar" author="Ryan Graham" description="Enables import and export of user data" icon="https://igniterealtime.org/projects/openfire/plugins/2.7.0/userImportExport/logo_small.gif" minServerVersion="4.3.0" readme="https://igniterealtime.org/projects/openfire/plugins/2.7.0/userImportExport/readme.html" fileSize="842649"/>
|
||||
<plugin name="RawPropertyEditor" latest="1.0.2" changelog="https://igniterealtime.org/projects/openfire/plugins/1.0.2/rawpropertyeditor/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/1.0.2/rawpropertyeditor.jar" author="Liam Gregory" description="RawPropertyEditor Plugin" icon="https://igniterealtime.org/projects/openfire/plugins/1.0.2/rawpropertyeditor/logo_small.gif" minServerVersion="4.7.0" readme="https://igniterealtime.org/projects/openfire/plugins/1.0.2/rawpropertyeditor/readme.html" fileSize="1763765"/>
|
||||
<plugin name="Just married" latest="1.2.4" changelog="https://igniterealtime.org/projects/openfire/plugins/1.2.4/justmarried/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/1.2.4/justmarried.jar" author="Holger Bergunde" description="Allows admins to rename or copy users" icon="https://igniterealtime.org/projects/openfire/plugins/1.2.4/justmarried/logo_small.png" minServerVersion="4.0.0" readme="https://igniterealtime.org/projects/openfire/plugins/1.2.4/justmarried/readme.html" fileSize="39579"/>
|
||||
<plugin name="NodeJs" latest="0.1.1" changelog="https://igniterealtime.org/projects/openfire/plugins/0.1.1/nodejs/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/0.1.1/nodejs.jar" author="igniterealtime.org" description="Integrates NodeJs Applications with Openfire." icon="https://igniterealtime.org/projects/openfire/plugins/0.1.1/nodejs/logo_small.gif" minServerVersion="4.0.0" readme="https://igniterealtime.org/projects/openfire/plugins/0.1.1/nodejs/readme.html" licenseType="Apache 2.0" fileSize="20432"/>
|
||||
<plugin name="Pade" latest="1.7.2" changelog="https://igniterealtime.org/projects/openfire/plugins/1.7.2/pade/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/1.7.2/pade.jar" author="Ignite Realtime" description="Web-based chat, groupchat, telephones, audio and video conferencing solution using ConverseJS, Jitsi and FreeSWITCH" icon="https://igniterealtime.org/projects/openfire/plugins/1.7.2/pade/logo_small.gif" minServerVersion="4.7.0" readme="https://igniterealtime.org/projects/openfire/plugins/1.7.2/pade/readme.html" fileSize="245590151"/>
|
||||
<plugin name="Ohun" latest="0.0.2" changelog="https://igniterealtime.org/projects/openfire/plugins/0.0.2/ohun/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/0.0.2/ohun.jar" author="Ignite Realtime" description="Simple group audio conferencing plugin for Openfire" icon="https://igniterealtime.org/projects/openfire/plugins/0.0.2/ohun/logo_small.gif" minServerVersion="4.0.0" readme="https://igniterealtime.org/projects/openfire/plugins/0.0.2/ohun/readme.html" licenseType="Apache 2.0" fileSize="23580824"/>
|
||||
<plugin name="Monitoring Service" latest="2.3.1" changelog="https://igniterealtime.org/projects/openfire/plugins/2.3.1/monitoring/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/2.3.1/monitoring.jar" author="Ignite Realtime" description="Monitors conversations and statistics of the server." icon="https://igniterealtime.org/projects/openfire/plugins/2.3.1/monitoring/logo_small.gif" minServerVersion="4.7.0" readme="https://igniterealtime.org/projects/openfire/plugins/2.3.1/monitoring/readme.html" fileSize="29748287"/>
|
||||
<plugin name="Jingle Nodes Plugin" latest="0.2.1" changelog="https://igniterealtime.org/projects/openfire/plugins/0.2.1/jingleNodes/changelog.html" url="https://igniterealtime.org/projects/openfire/plugins/0.2.1/jingleNodes.jar" author="Jingle Nodes (Rodrigo Martins)" description="Provides support for Jingle Nodes" icon="https://igniterealtime.org/projects/openfire/plugins/0.2.1/jingleNodes/logo_small.gif" minServerVersion="4.0.0" readme="https://igniterealtime.org/projects/openfire/plugins/0.2.1/jingleNodes/readme.html" fileSize="1039232"/>
|
||||
</available>
|
||||
@@ -0,0 +1,42 @@
|
||||
#
|
||||
# This file defines the configuration properties required
|
||||
# when using the Atlassian Crowd integration for Openfire.
|
||||
#
|
||||
# https://confluence.atlassian.com/display/CROWD/The+crowd.properties+file
|
||||
#
|
||||
# To activate the Crowd integration for Openfire, you must define
|
||||
# the following Openfire system properties:
|
||||
#
|
||||
# provider.admin.className org.jivesoftware.openfire.crowd.CrowdAdminProvider
|
||||
# provider.auth.className org.jivesoftware.openfire.crowd.CrowdAuthProvider
|
||||
# provider.group.className org.jivesoftware.openfire.crowd.CrowdGroupProvider
|
||||
# provider.user.className org.jivesoftware.openfire.crowd.CrowdUserProvider
|
||||
# provider.vcard.className org.jivesoftware.openfire.crowd.CrowdVCardProvider
|
||||
#
|
||||
# In addition, you may customize the Crowd provider using the following Openfire
|
||||
# system properties:
|
||||
#
|
||||
# admin.authorizedGroups <comma-separated list of Crowd groups having Openfire admin rights>
|
||||
# crowd.groups.cache.ttl.seconds 3600
|
||||
# crowd.users.cache.ttl.seconds 3600
|
||||
#
|
||||
|
||||
# The REST URL for your Crowd server.
|
||||
crowd.server.url=https://YOUR-CROWD-SERVER:8095/crowd/
|
||||
|
||||
# These properties are required to authenticate with the Crowd server.
|
||||
# They must match the values specified in the Crowd configuration.
|
||||
application.name=openfire
|
||||
application.password=<password>
|
||||
|
||||
# Other optional configuration properties.
|
||||
|
||||
#http.proxy.host=
|
||||
#http.proxy.port=
|
||||
#http.proxy.username=
|
||||
#http.proxy.password=
|
||||
|
||||
# These properties can be used to tune the Crowd integration.
|
||||
#http.max.connections=20
|
||||
#http.timeout=5000
|
||||
#http.socket.timeout=20000
|
||||
@@ -0,0 +1,54 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<jive>
|
||||
<adminConsole>
|
||||
<port>9090</port>
|
||||
<securePort>9091</securePort>
|
||||
</adminConsole>
|
||||
<connectionProvider>
|
||||
<className>org.jivesoftware.database.EmbeddedConnectionProvider</className>
|
||||
</connectionProvider>
|
||||
<autosetup>
|
||||
<run>true</run>
|
||||
<locale>en</locale>
|
||||
<xmpp>
|
||||
<auth>
|
||||
<anonymous>true</anonymous>
|
||||
</auth>
|
||||
<domain>localhost</domain>
|
||||
<fqdn>localhost</fqdn>
|
||||
</xmpp>
|
||||
<database>
|
||||
<mode>embedded</mode>
|
||||
</database>
|
||||
<admin>
|
||||
<email>admin@example.com</email>
|
||||
<password>admin</password>
|
||||
</admin>
|
||||
<users>
|
||||
<user1>
|
||||
<username>john</username>
|
||||
<password>secret</password>
|
||||
<name>John Doe</name>
|
||||
<email>john.doe@example.com</email>
|
||||
<roster>
|
||||
<item1>
|
||||
<jid>jane@localhost</jid>
|
||||
<nickname>Jane</nickname>
|
||||
</item1>
|
||||
</roster>
|
||||
</user1>
|
||||
<user2>
|
||||
<username>jane</username>
|
||||
<password>secret</password>
|
||||
<name>Jane Doe</name>
|
||||
<email>jane.doe@example.com</email>
|
||||
<roster>
|
||||
<item1>
|
||||
<jid>john@localhost</jid>
|
||||
<nickname>John</nickname>
|
||||
</item1>
|
||||
</roster>
|
||||
</user2>
|
||||
</users>
|
||||
</autosetup>
|
||||
</jive>
|
||||
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<jive>
|
||||
<adminConsole>
|
||||
<port>9090</port>
|
||||
<securePort>9091</securePort>
|
||||
</adminConsole>
|
||||
<connectionProvider>
|
||||
<className>org.jivesoftware.database.DefaultConnectionProvider</className>
|
||||
</connectionProvider>
|
||||
<setup>true</setup>
|
||||
<locale>en</locale>
|
||||
<fqdn>localhost</fqdn>
|
||||
</jive>
|
||||
@@ -0,0 +1,66 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!--
|
||||
This file stores security-related properties needed by Openfire.
|
||||
You may edit this file to manage encrypted properties and
|
||||
encryption configuration value. Note however that you should not
|
||||
edit this file while Openfire is running, or it may be overwritten.
|
||||
|
||||
It is important to note that Openfire will store encrypted property
|
||||
values securely "at rest" (e.g. in the database or XML), but the
|
||||
values will be managed as clear text strings in memory at runtime for
|
||||
interoperability and performance reasons. Encrypted property values
|
||||
are not visible via the Openfire console, but they may be edited or
|
||||
deleted as needed.
|
||||
-->
|
||||
<security>
|
||||
<encrypt>
|
||||
<!-- This can be set to "AES" or "Blowfish" (default) at setup time -->
|
||||
<algorithm>Blowfish</algorithm>
|
||||
<key>
|
||||
<!--
|
||||
If this is a new server setup, you may set a custom encryption key
|
||||
by setting a value for the <new /> encryption key element only.
|
||||
|
||||
To change the encryption key, provide values for both new and old
|
||||
encryption keys here. The "old" key must match the unencrypted value
|
||||
of the "current" key. The server will update the existing property
|
||||
values in the database, re-encrypting them using the new key. After
|
||||
the encrypted properties have been updated, the new key will itself
|
||||
be encrypted and re-written into this file as <current />.
|
||||
|
||||
Note that if the current encryption key becomes invalid, any property
|
||||
values secured by the original key will be inaccessible as well.
|
||||
|
||||
The key value can be any string, and it will be hashed, filled, and/or
|
||||
truncated to produce a compatible key for the corresponding algorithm.
|
||||
Note that leading and trailing spaces will be ignored. A strong key
|
||||
will contain sixteen characters or more.
|
||||
|
||||
<old></old>
|
||||
<new></new>
|
||||
-->
|
||||
<current></current>
|
||||
</key>
|
||||
<property>
|
||||
<!--
|
||||
This list includes the names of properties that have been marked for
|
||||
encryption. Any XML properties (from openfire.xml) that are listed here
|
||||
will be encrypted automatically upon first use. Other properties
|
||||
(already in the database) can be added to this list at runtime via the
|
||||
"System Properties" page in the Openfire console.
|
||||
-->
|
||||
<name>database.defaultProvider.username</name>
|
||||
<name>database.defaultProvider.password</name>
|
||||
</property>
|
||||
</encrypt>
|
||||
<!--
|
||||
Any other property defined in this file will be treated as an encrypted
|
||||
property. The value (in clear text) will be encrypted and migrated into
|
||||
the Openfire database during the next startup. The property name will
|
||||
be added to the list of encrypted properties and the clear text value
|
||||
will be removed from this file.
|
||||
|
||||
<foo><bar>Secr3t$tr1ng!</bar></foo>
|
||||
-->
|
||||
</security>
|
||||
@@ -0,0 +1 @@
|
||||
This directory is used as a default location in which Openfire stores backups of keystore files.
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,4 @@
|
||||
|
||||
<version>
|
||||
<openfire latest="4.7.3" changelog="https://igniterealtime.org/builds/openfire/docs/latest/changelog.html" url="https://igniterealtime.org/downloads/"/>
|
||||
</version>
|
||||
Reference in New Issue
Block a user