Giter Club home page Giter Club logo

mina-vysper's Introduction

Maven Central Jenkins Jenkins tests

Apache Vysper

This project aims at delivering a server implementation of both the core and IM parts of the XMPP protocol (as specified in RFCs 3920 + 3921).

"Vysper" is pronounced like in "whisper".

XMPP is an open, secure and extensible instant messaging protocol which has evolved from Jabber.
It provides interoperability features for communication with other XMPP and non-XMPP servers.
It is used and supported by many IM applications, both client and server.

The protocol and its many extensions (called XEPs) are maintained by the XMPP Standards Foundation (XSF.

In addition to the basic protocol and many small extensions, Vysper currently comes with working implementations for
  Multi-User Chat (XEP-0045) [5]
and
  Publish-Subscribe (XEP-0060) [6]

Building

You need Apache Maven 2, Maven 2.2.1 or later is recommended. Run
  mvn install
and you should find a number of JAR files in different target/ folders.
The different build artifacts are compiled in dist/.

Running

There are different ways to run Vysper

A ready-to-run setup is created by the build in
  dist/target/appassembler/
Under
  dist/target/appassembler/bin
you'll find start scripts for Unix/Mac and Windows.

This makes use of the Spring-based server runtime.
Main class is
  org.apache.vysper.spring.ServerMain
and the bean configuration is located in
  server/core/src/main/config/spring-config.xml

There is a non-Spring runtime, too:
  org.apache.vysper.spring.ServerMain
The source code shows how the different components are plugged together.

It can serve as a template for integrating Vysper in any other application.
The class
  org.apache.vysper.xmpp.server.XMPPServer
is built to make the server easily configurable and embeddable.

Configuration

Vysper uses SSL encryption per default.
For this purpose, an TLS certificate is provided.
It is highly recommended to create and use a self-generated certificate!

There is one preconfigured user ([email protected]). The password for this
user is "CHOOSE A SECURE PASSWORD". Please change this password before starting!

Please note that the domain vysper.org is not running an XMPP server.
If you go with the default setup and don't configure your own domain name,
please note that you have to configure your Jabber clients to force the host name
(for example the IP or localhost, depending on how you run it).

Contributing

You can contribute by creating a new issue entry (or working on an existing).

For an overview of all VYSPER related issues, visit https://github.com/apache/mina-vysper/issues

Any contribution is highly welcome. It can be easily reviewed if it comes in form of a Github pull request.

Currently, all coding is done unit test driven. Well, at least it should be ;-)

Please find us on MINA'S developer mailing list [email protected].

mina-vysper's People

Contributors

berndfo avatar elecharny avatar garydgregory avatar gnodet avatar jlleitschuh avatar jvermillard avatar karimhm avatar reda-alaoui avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mina-vysper's Issues

XEP-0443: XMPP Compliance Suites 2021

Please add support of XEP-0443: XMPP Compliance Suites 2021: https://xmpp.org/extensions/xep-0443.html

Which replaces:

Support of "New" XMPP RFCs

Release a new version

The latest published version is 0.7 and was released 10 years ago (on Feb 24, 2011) and a lot of changes happened since. It will be a god idea to release a new version so everyone can take advantage of all the fixes and features that had been written.

TCPEndpoint not offering IoFilterChainBuilder

TCPEndpoint endpoint = new TCPEndpointChainBuilder();
server = new XMPPServer(serverName);
server.addEndpoint(endpoint);
server.start();
endpoint.getFilterChainBuilder().addFirst("custom", new MyCustomFilter());

Always throw a NPE because the field filterChainBuilder in TCPEndpoint is never written.

SCRAM-SHA-1(-PLUS) + SCRAM-SHA-256(-PLUS) + SCRAM-SHA-512(-PLUS) + SCRAM-SHA3-512(-PLUS) supports

Can you add supports of :

  • SCRAM-SHA-1
  • SCRAM-SHA-1-PLUS
  • SCRAM-SHA-224
  • SCRAM-SHA-224-PLUS
  • SCRAM-SHA-256
  • SCRAM-SHA-256-PLUS
  • SCRAM-SHA-384
  • SCRAM-SHA-384-PLUS
  • SCRAM-SHA-512
  • SCRAM-SHA-512-PLUS
  • SCRAM-SHA3-512
  • SCRAM-SHA3-512-PLUS

"When using the SASL SCRAM mechanism, the SCRAM-SHA-256-PLUS variant SHOULD be preferred over the SCRAM-SHA-256 variant, and SHA-256 variants [RFC7677] SHOULD be preferred over SHA-1 variants [RFC5802]".

https://xmpp.org/extensions/inbox/hash-recommendations.html

-PLUS variants:

LDAP:

  • RFC5803: Lightweight Directory Access Protocol (LDAP) Schema for Storing Salted: Challenge Response Authentication Mechanism (SCRAM) Secrets: https://tools.ietf.org/html/rfc5803

HTTP:

2FA:

IANA:

Linked to:

Startup script fails: "Could not find or load main class org.apache.vysper.spring.ServerMain"

In https://github.com/apache/mina-vysper/blob/685a690b3aa141f7ab9f275c8c29b0b043232dd4/README.md:

A ready-to-run setup is created by the build in
  dist/target/appassembler/
Under
  dist/target/appassembler/bin
you'll find start scripts for Unix/Mac and Windows.

When I run mvn install and then try to run the startup script, here's the result:

Error: Could not find or load main class org.apache.vysper.spring.ServerMain
Caused by: java.lang.ClassNotFoundException: org.apache.vysper.spring.ServerMain

Indeed, I cannot find a class called org.apache.vysper.spring.ServerMain in the repository. There are several ServerMain classes but not one in package org.apache.vysper.spring.

Am I doing something wrong? Or is there an easy fix to get Vysper running?

TLS-handshake fails and certificates not recognized

When I run the server with the standard certificate stuff, the server successfully starts and is reachable.
Though the TLS-handshakes fail.

And when I try to configure vysper to use my certificate, it fails to start.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.