SagerNet / SagerNet/sing-box

Feature Request: Implementation of server URL query string in OpenConnect client

Open
#4,491 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
38.1k
Forks
4.6k
Avg merge
19d 15h
Merged PRs (30d)
1

Description

In the sing-box 1.14.0 OpenConnect client implementation OpenConnect VPN server HTTPS URL does not support user information, queries and fragments. So, it's impossible to use camouflage feature of OpenConnect server.
If camouflage feature is not used by OpenConnect server, it returns an XML code in response to GET request to any server URL and this code looks as follows:

<config-auth client="vpn" type="auth-request">
    <version who="sg">0.1(1)</version>
    <auth id="main">
        <message>Please enter your username and password.</message>
        <form method="post" action="/auth">
            <input type="text" name="username" label="Username:"/>
            <input type="password" name="password" label="Password:"/>
        </form>
    </auth>
</config-auth>

This will unmask the OpenConnect server.
If camouflage feature is set to true in OpenConnect server configuration, server expects an exact query string in URL, defined in camouflage_secret string in the configuration. If HTTP-request contains invalid query string, OpenConnect server sends authorization request like web-server configured with auth_basic instead of XML code above.

Please implement OpenConnect server URL query string.
Thank you.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Locate the sing-box OpenConnect client implementation and its server URL parsing or request entry point, then trace how the URL reaches the HTTPS request. Check the OpenConnect camouflage_secret requirement and verify that a configured query string is preserved while existing URL behavior remains unchanged; run the relevant client tests if present.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
networking
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
58/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.