Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: http proxy config for httpAudioSourceManager #595

Merged
merged 5 commits into from
Jan 7, 2022

Conversation

ToxicMushroom
Copy link
Contributor

Useful for stopping bad actors from IP-grabbing your main music server and attacking it.
Tested with squidproxy

@Walkyst
Copy link
Contributor

Walkyst commented Jan 6, 2022

How it supposed to connect if proxy behind some basic auth like login and password?

@ToxicMushroom
Copy link
Contributor Author

ToxicMushroom commented Jan 6, 2022

How it supposed to connect if proxy behind some basic auth like login and password?

I've added an option for authentication, I don't have a setup to test this though

LavalinkServer/application.yml.example Outdated Show resolved Hide resolved
@freyacodes
Copy link
Member

It still needs a description of why you would ever want to set up a proxy

@freyacodes freyacodes merged commit 6099bc4 into lavalink-devs:dev Jan 7, 2022
@topi314 topi314 mentioned this pull request Aug 28, 2022
topi314 added a commit that referenced this pull request Aug 28, 2022
* Call AudioPlayer#destroy() instead of #stop()

* Add first draft of a plugin API

* Add plugins endpoint

* Make Player implement IPlayer

* Add AudioPlayerManager configuration via plugins

* Fix error when enabling timescale and lowpass filters (#572)

* Add plugin loading

* Add automatic plugin downloading

* Use JDK 11 for Jitpack build

* Use custom jitpack install command

* Add maven plugin to API module

* Configure plugin api build

* Fix player is not playing after move between vc or changing regions (#577)

* Configure plugin api publishing

* Load plugins on startup

* Implement plugin event handling and ISocketContext

* Fix PluginsEndpoint

* Allow closing with custom close frame

* Update plugin api version

* Fix spring initialization

* Fix jitpack build

* Re-add JCenter for now

* Refactor EventEmitter

* Add JCenter to the right block

* Reconfigure build of Lavalink-Server

* Use default jitpack tasks

* Load plugin @components upon strtup

* Add filter extension support

* Fix jar loading URL

* Add custom WS handler support

* Fix WS handling

* Set plugin-api to Java 8

* Fix jar and class loading

* Load classes into a single Classloader

* Fix plugin jar management

* updaate lavalink-client & use lavalinks rest api to load tracks (#580)

* Add API javadoc

* Bump plugin-api version

* Add spring-boot dependency instead of spring-context

* Fix broken tests

* fix guild ids sent as numbers in json (#581)

* add onDestroyPlayer event for plugins to use (#583)

* Plugin version 0.7.0

* Bump lavaplayer and add YT config for avoiding age restrictions (#582)

* Bump lavaplayer and add YT config for avoiding age restrictions

* Move youtubeconfig to serverconfig

* Tweak log message

* Convert event handler from interface to abstract class

* Add plugin documentation

* Fix plugin event handler access modifiers

* add spotify plugin & reword sponsorblock (#585)

* Fix ClassNotFoundException in PluginManager outside of dev environment

* Fix lateinit exception in FilterChain

* Document audio source manager beans

* Plugin API 0.9.0

* Rename dunctebot repo (#587)

* Register http source manager last

* Refactor plugin loading

* Simplify startup slightly

* Fix REST endpoints

* Document /plugins endpoint

* Add beta warning

* Fix merge error and tests

* Fix http manager being registered before plugin managers

* Add google cloud tts plugin (#597)

* fix: missing timescale natives (#600)

Fixes the error when trying to apply timescale filters using the dev branch: #599

* feat: http proxy config for httpAudioSourceManager (#595)

* feat: http proxy config for httpAudioSourceManager

* feat(application.yml.example): add httpProxy example
fix(HttpConfig): indentation

* feat: http proxy auth

* chore: add missing config examples and comments

* chore(application.yml.example): description httpconfig

* Set endMarkerHit to correctly set FINISHED as the reason (#609)

* update links to plugins (#613)

* update spotify plugin repo link (#617)

* Added a missing space in WebSocketHandler.kt (#625)

* Added details of additional audio filter plugin (#634)

* Added new plugin details

* Added filter plugin details

* Fixed format

* Update spring dependencies

This commit should tackle any possibility of CVE-2022-22965 being exploited on LavaLink. As far as the current information available states, LavaLink is not vulnerable as we are using the Undertow container and running as a deployable jar instead of a war-file.

This dependency update required an upgrade to Gradle 6.9 as the spring-boot dependency now requires at least gradle 6.8, since 7.0 made changes to how a lot of APIs work, I've sticked with 6.9 for now.

Signed-off-by: Fabricio Winter <git@notfab.net>

* Remove doLast step from bootJar configuration

Signed-off-by: Fabricio Winter <git@notfab.net>

* fix docker workdir permisions for creation of plugins folder (#666)

* Update Lavaplayer (#661)

Resolves track searching issues.

* update koe version (#648)

* update to Walkyst koe fork, renamed VoiceConnection -> MediaConnection

* use walkyst fork ext-udpqueue

* use latest koe master branch commit

* update to latest koe commit

* update to koe 2.0.0-rc1

* Document search prefixes in IMPLEMENTATION (#657)

* Document search prefixes in IMPLEMENTATION

* Change wording of track search

Co-authored-by: Freya Arbjerg <freya@arbjerg.dev>

* Allow adding new MediaContainerProbes via plugins (#631)

* Allow adding new MediaContainerProbes via plugins

* Document custom MediaContainerProbe bean support

* Changes plugin decoumentation wording

Co-authored-by: Freya Arbjerg <freya@arbjerg.dev>

* Add log message when application is ready (#665)

* Add log message when application is ready

This marks the moment the application is ready more clearly now
that there are 2 'Started Launcher' log messages.

Additionally, this is somewhat helpful for people running LL through
subprocess that want to programmatically detect when application starts
to accept connections.

* Change "Application" to "Lavalink"

Co-authored-by: Freya Arbjerg <freya@arbjerg.dev>

* Merge event listeners

* undeprecate volume property in play op

* (LowPass) Change enable value, update docs. (#673)

* LowPass: enforce minimum, change enable value, update docs.

* Remove coercing to allow the filter to actually be disabled.

* Bump lowpass minimum to 1.0f

* Enforce >1.0

* add configurable track stuck threshold

* Enforce minimum bufferDuration of 50ms (#674)

* Enforce minimum of 50ms due to unexpected behaviour

* Allow exactly 50ms.

* Minimum should be divisible by 20 due to 20ms packet times.

* Lower to 40ms, mention possibility of stuttering

* 'more' is redundant, under ideal conditions there are no pauses.

* increase minimum track stuck threshold to 100ms

* Bump lavaplayer (#683)

* Bump lavaplayer

* Email and pass not necessary

* 1.3.98.1

* Switch to kotlin gradle dsl and use version catalogs (#672)

* Switch to kotlin gradle dsl and version catalogs

* Use jetbrains annotations

* We don't want tomcat

* Add spotbugs

* Revert annotation import change

Co-authored-by: TopiSenpai <tobi@strasserhof.com>

* added github actions to build jars & docker images

* fix dockerhub repo

* add minns updqueue natives to support more architecturtes

* specify platforms to build docker images for

* update to udpqueue natives 0.1.6 with m1 support

* fix check enabling jda nas on supported platforms

* fix github actions issues (#698)

* remove on pull_request & block job from running if no dokcer secrets are provided

* remove on pull_request for workflow

* remove unneeded check & expression syntax in if

* run docker job only if secrets are set

* fix job name

* fix needs job name

* fix docker job output

* Test docker push

* Force docker push test

* fix misnamed job output

* hopefully fix the issue to run the docker job

* fix missing "

* Delete test

Co-authored-by: Freya Arbjerg <freya@arbjerg.dev>

* document now supported architecures in README.md

* fix github action to upload build artifacts to releases

* Allow adjustment of opus encoding & resampling quality fields in AudioConfiguration (#699)

* Allow setting opusEncoding & resampling quality

* Mark resamplingQuality as nullable so it can be omitted

* Support useSeekGhosting setting.

* Update LP

* Update LP again.

1.3.98.2 was held by a previous build, so another release had to be made.

* Use zulu-openjdk 18 as base

* Update application.yml.example (#710)

* remove docker arm/v7 builds for now

* Refactor GitHub actions (#702)

* remove VERSION.txt and refactor github actions

* combine gradle & docker build into one job

* combine push and build

* use eclipse-temurin:18 as docker base image for linux/arm/v7 & linux/arm64/v8 images

* catch UnsatisfiedLinkError when jda nas is enabled on unsupported systems

* catch throwable instead of UnsatisfiedLinkError when jda nas is loaded

* Revert back to OpenJDK

* revert arm images

* catch throwable instead of UnsatisfiedLinkError when jda nas is loaded

* Bump lavaplayer

* mention github actions in readme

* Add XM module plugin to list (#725)

* arm docker images (#716)

* switch back to eclipse-temurin:18 docker image and reeanle linux/arm64/v8 and linux/arm/v7 docker builds

* use jre focal temurin image

Signed-off-by: Fabricio Winter <git@notfab.net>
Co-authored-by: Freya Arbjerg <freya@arbjerg.dev>
Co-authored-by: David Amorim <66310990+davidffa@users.noreply.github.com>
Co-authored-by: Walkyst <41806921+Walkyst@users.noreply.github.com>
Co-authored-by: Duncan Sterken <contact@duncte123.me>
Co-authored-by: Muh <52611945+Muh9049@users.noreply.github.com>
Co-authored-by: ToxicMushroom <merlijn.verstraete@gmail.com>
Co-authored-by: Devoxin <15076404+Devoxin@users.noreply.github.com>
Co-authored-by: mooner <moonmk10221@gmail.com>
Co-authored-by: Rohan Kumar <rohan.shuvam@gmail.com>
Co-authored-by: Fabricio Winter <git@notfab.net>
Co-authored-by: Essem <smswessem@gmail.com>
Co-authored-by: Jakub Kuczys <6032823+jack1142@users.noreply.github.com>
Co-authored-by: 2D <44017640+melike2d@users.noreply.github.com>
Co-authored-by: Kodehawa <david.alejandro.rubio@gmail.com>
Co-authored-by: aikaterna <20862007+aikaterna@users.noreply.github.com>
freyacodes pushed a commit to freyacoded/repo-test that referenced this pull request Oct 11, 2022
* feat: http proxy config for httpAudioSourceManager

* feat(application.yml.example): add httpProxy example
fix(HttpConfig): indentation

* feat: http proxy auth

* chore: add missing config examples and comments

* chore(application.yml.example): description httpconfig
freyacodes added a commit to freyacoded/repo-test that referenced this pull request Oct 11, 2022
* Call AudioPlayer#destroy() instead of #stop()

* Add first draft of a plugin API

* Add plugins endpoint

* Make Player implement IPlayer

* Add AudioPlayerManager configuration via plugins

* Fix error when enabling timescale and lowpass filters (lavalink-devs#572)

* Add plugin loading

* Add automatic plugin downloading

* Use JDK 11 for Jitpack build

* Use custom jitpack install command

* Add maven plugin to API module

* Configure plugin api build

* Fix player is not playing after move between vc or changing regions (lavalink-devs#577)

* Configure plugin api publishing

* Load plugins on startup

* Implement plugin event handling and ISocketContext

* Fix PluginsEndpoint

* Allow closing with custom close frame

* Update plugin api version

* Fix spring initialization

* Fix jitpack build

* Re-add JCenter for now

* Refactor EventEmitter

* Add JCenter to the right block

* Reconfigure build of Lavalink-Server

* Use default jitpack tasks

* Load plugin @components upon strtup

* Add filter extension support

* Fix jar loading URL

* Add custom WS handler support

* Fix WS handling

* Set plugin-api to Java 8

* Fix jar and class loading

* Load classes into a single Classloader

* Fix plugin jar management

* updaate lavalink-client & use lavalinks rest api to load tracks (lavalink-devs#580)

* Add API javadoc

* Bump plugin-api version

* Add spring-boot dependency instead of spring-context

* Fix broken tests

* fix guild ids sent as numbers in json (lavalink-devs#581)

* add onDestroyPlayer event for plugins to use (lavalink-devs#583)

* Plugin version 0.7.0

* Bump lavaplayer and add YT config for avoiding age restrictions (lavalink-devs#582)

* Bump lavaplayer and add YT config for avoiding age restrictions

* Move youtubeconfig to serverconfig

* Tweak log message

* Convert event handler from interface to abstract class

* Add plugin documentation

* Fix plugin event handler access modifiers

* add spotify plugin & reword sponsorblock (lavalink-devs#585)

* Fix ClassNotFoundException in PluginManager outside of dev environment

* Fix lateinit exception in FilterChain

* Document audio source manager beans

* Plugin API 0.9.0

* Rename dunctebot repo (lavalink-devs#587)

* Register http source manager last

* Refactor plugin loading

* Simplify startup slightly

* Fix REST endpoints

* Document /plugins endpoint

* Add beta warning

* Fix merge error and tests

* Fix http manager being registered before plugin managers

* Add google cloud tts plugin (lavalink-devs#597)

* fix: missing timescale natives (lavalink-devs#600)

Fixes the error when trying to apply timescale filters using the dev branch: lavalink-devs#599

* feat: http proxy config for httpAudioSourceManager (lavalink-devs#595)

* feat: http proxy config for httpAudioSourceManager

* feat(application.yml.example): add httpProxy example
fix(HttpConfig): indentation

* feat: http proxy auth

* chore: add missing config examples and comments

* chore(application.yml.example): description httpconfig

* Set endMarkerHit to correctly set FINISHED as the reason (lavalink-devs#609)

* update links to plugins (lavalink-devs#613)

* update spotify plugin repo link (lavalink-devs#617)

* Added a missing space in WebSocketHandler.kt (lavalink-devs#625)

* Added details of additional audio filter plugin (lavalink-devs#634)

* Added new plugin details

* Added filter plugin details

* Fixed format

* Update spring dependencies

This commit should tackle any possibility of CVE-2022-22965 being exploited on LavaLink. As far as the current information available states, LavaLink is not vulnerable as we are using the Undertow container and running as a deployable jar instead of a war-file.

This dependency update required an upgrade to Gradle 6.9 as the spring-boot dependency now requires at least gradle 6.8, since 7.0 made changes to how a lot of APIs work, I've sticked with 6.9 for now.

Signed-off-by: Fabricio Winter <git@notfab.net>

* Remove doLast step from bootJar configuration

Signed-off-by: Fabricio Winter <git@notfab.net>

* fix docker workdir permisions for creation of plugins folder (lavalink-devs#666)

* Update Lavaplayer (lavalink-devs#661)

Resolves track searching issues.

* update koe version (lavalink-devs#648)

* update to Walkyst koe fork, renamed VoiceConnection -> MediaConnection

* use walkyst fork ext-udpqueue

* use latest koe master branch commit

* update to latest koe commit

* update to koe 2.0.0-rc1

* Document search prefixes in IMPLEMENTATION (lavalink-devs#657)

* Document search prefixes in IMPLEMENTATION

* Change wording of track search

Co-authored-by: Freya Arbjerg <freya@arbjerg.dev>

* Allow adding new MediaContainerProbes via plugins (lavalink-devs#631)

* Allow adding new MediaContainerProbes via plugins

* Document custom MediaContainerProbe bean support

* Changes plugin decoumentation wording

Co-authored-by: Freya Arbjerg <freya@arbjerg.dev>

* Add log message when application is ready (lavalink-devs#665)

* Add log message when application is ready

This marks the moment the application is ready more clearly now
that there are 2 'Started Launcher' log messages.

Additionally, this is somewhat helpful for people running LL through
subprocess that want to programmatically detect when application starts
to accept connections.

* Change "Application" to "Lavalink"

Co-authored-by: Freya Arbjerg <freya@arbjerg.dev>

* Merge event listeners

* undeprecate volume property in play op

* (LowPass) Change enable value, update docs. (lavalink-devs#673)

* LowPass: enforce minimum, change enable value, update docs.

* Remove coercing to allow the filter to actually be disabled.

* Bump lowpass minimum to 1.0f

* Enforce >1.0

* add configurable track stuck threshold

* Enforce minimum bufferDuration of 50ms (lavalink-devs#674)

* Enforce minimum of 50ms due to unexpected behaviour

* Allow exactly 50ms.

* Minimum should be divisible by 20 due to 20ms packet times.

* Lower to 40ms, mention possibility of stuttering

* 'more' is redundant, under ideal conditions there are no pauses.

* increase minimum track stuck threshold to 100ms

* Bump lavaplayer (lavalink-devs#683)

* Bump lavaplayer

* Email and pass not necessary

* 1.3.98.1

* Switch to kotlin gradle dsl and use version catalogs (lavalink-devs#672)

* Switch to kotlin gradle dsl and version catalogs

* Use jetbrains annotations

* We don't want tomcat

* Add spotbugs

* Revert annotation import change

Co-authored-by: TopiSenpai <tobi@strasserhof.com>

* added github actions to build jars & docker images

* fix dockerhub repo

* add minns updqueue natives to support more architecturtes

* specify platforms to build docker images for

* update to udpqueue natives 0.1.6 with m1 support

* fix check enabling jda nas on supported platforms

* fix github actions issues (lavalink-devs#698)

* remove on pull_request & block job from running if no dokcer secrets are provided

* remove on pull_request for workflow

* remove unneeded check & expression syntax in if

* run docker job only if secrets are set

* fix job name

* fix needs job name

* fix docker job output

* Test docker push

* Force docker push test

* fix misnamed job output

* hopefully fix the issue to run the docker job

* fix missing "

* Delete test

Co-authored-by: Freya Arbjerg <freya@arbjerg.dev>

* document now supported architecures in README.md

* fix github action to upload build artifacts to releases

* Allow adjustment of opus encoding & resampling quality fields in AudioConfiguration (lavalink-devs#699)

* Allow setting opusEncoding & resampling quality

* Mark resamplingQuality as nullable so it can be omitted

* Support useSeekGhosting setting.

* Update LP

* Update LP again.

1.3.98.2 was held by a previous build, so another release had to be made.

* Use zulu-openjdk 18 as base

* Update application.yml.example (lavalink-devs#710)

* remove docker arm/v7 builds for now

* Refactor GitHub actions (lavalink-devs#702)

* remove VERSION.txt and refactor github actions

* combine gradle & docker build into one job

* combine push and build

* use eclipse-temurin:18 as docker base image for linux/arm/v7 & linux/arm64/v8 images

* catch UnsatisfiedLinkError when jda nas is enabled on unsupported systems

* catch throwable instead of UnsatisfiedLinkError when jda nas is loaded

* Revert back to OpenJDK

* revert arm images

* catch throwable instead of UnsatisfiedLinkError when jda nas is loaded

* Bump lavaplayer

* mention github actions in readme

* Add XM module plugin to list (lavalink-devs#725)

* arm docker images (lavalink-devs#716)

* switch back to eclipse-temurin:18 docker image and reeanle linux/arm64/v8 and linux/arm/v7 docker builds

* use jre focal temurin image

Signed-off-by: Fabricio Winter <git@notfab.net>
Co-authored-by: Freya Arbjerg <freya@arbjerg.dev>
Co-authored-by: David Amorim <66310990+davidffa@users.noreply.github.com>
Co-authored-by: Walkyst <41806921+Walkyst@users.noreply.github.com>
Co-authored-by: Duncan Sterken <contact@duncte123.me>
Co-authored-by: Muh <52611945+Muh9049@users.noreply.github.com>
Co-authored-by: ToxicMushroom <merlijn.verstraete@gmail.com>
Co-authored-by: Devoxin <15076404+Devoxin@users.noreply.github.com>
Co-authored-by: mooner <moonmk10221@gmail.com>
Co-authored-by: Rohan Kumar <rohan.shuvam@gmail.com>
Co-authored-by: Fabricio Winter <git@notfab.net>
Co-authored-by: Essem <smswessem@gmail.com>
Co-authored-by: Jakub Kuczys <6032823+jack1142@users.noreply.github.com>
Co-authored-by: 2D <44017640+melike2d@users.noreply.github.com>
Co-authored-by: Kodehawa <david.alejandro.rubio@gmail.com>
Co-authored-by: aikaterna <20862007+aikaterna@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants