New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

com.github.bbottema:java-socks-proxy-server

Package Overview
Dependencies
Maintainers
0
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

com.github.bbottema:java-socks-proxy-server

java-socks-proxy-server is a SOCKS 4/5 server for Java

  • 4.1.2
  • Source
  • Maven
  • Socket score

Version published
Maintainers
0
Source

APACHE v2 License Latest Release Javadocs Codacy

java-socks-proxy-server

java-socks-proxy-server is a SOCKS 4/5 server for Java. Includes a JUnit Rule for easy testing with a SOCKS server.

It is a continuation of https://github.com/damico/java-socks-proxy-server.

<dependency>
  <groupId>com.github.bbottema</groupId>
  <artifactId>java-socks-proxy-server</artifactId>
  <version>4.1.2</version>
</dependency>

Usage:

// start serving clients on port 1234
SocksServer server = new SocksServer(1234).start();
...
server.stop(); // stop serving any new proxy requests

Or you can supply your own ServerSocketFactory:

// e.g. SSL on port 7132
SocksServer server = new SocksServer(1234, myCustomServerFactory).start();

By default, library uses NO_AUTH authentication mode

Username and Password Authentication

If you want to authenticate the clients, before proxying, you can set a UsernamePasswordAuthenticator, library supports standard Username/Password protocol.

    new SocksServer(1234)
        .setAuthenticator(new UsernamePasswordAuthenticator(false) {
          @Override
          public boolean validate(String username, String password) {
            // validate credentials here, e.g. check your local database
            return username.equals("mysecureusername") && password.equals("mysecurepassword");
          }
        }).start();

Supply a true value to constructor UsernamePasswordAuthenticator(), if you also want to prefer NO_AUTH mode over Username and password.

For use in junit 5 tests (for Junit 4 use a version < 3.0.0):

@RegisterExtension
static SockServerExtension sockServerRule = new SockServerExtension(PROXY_SERVER_PORT);

// or

@RegisterExtension
static SockServerExtension sockServerRule = new SockServerExtension(PROXY_SERVER_PORT, myServerSocketFactory);

And that's it!

Change history

v4.1.2 (02-October-2024)

  • #15: [bug+maintenance] Current version doesn't assign default authentication handler properly, address nullability and superfluous method chaining.

v4.1.0 (15-May-2024) v4.1.1 (duplicate release)

  • #14: Enhanced dynamic username/password authentication support for custom validation strategies.
  • Minor performance improvements based on SpotBugs recommendations.

NOTE: the start methods have been marked deprecated. For serving clienst on multiple ports, create a new instance of the server for each port.

v4.0.0 (21-April-2024)

  • Maintenance release: upgraded parent POM version, switched to Junit5, updated dependencies, added SpotBugs checks.

v3.0.0 (22-Januray-2024)

  • #12: Added a more robust server adaptation with synchronous startup (including retries), shutdown closes all connections. With thanks to @kllbzz

v2.0.0 (26-December-2021)

  • Switched to Java 8 and included fix for recent log4j security issue

v1.1.0 (15-April-2021)

  • #4 added support for custom server socket factory (so you are free to configure SSL)

v1.0.2 (5-July-2020)

  • Bumped log4j-core from 2.6.1 to 2.13.2

v1.0.1 (6-December-2019)

  • Removed Jacoco instrumentation from production code

v1.0.0 (6-December-2019)

Initial release

4-December-2019

Initial upload

FAQs

Package last updated on 02 Oct 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc