From 7bd4c45d2e4678345778189cfa6b567762adb506 Mon Sep 17 00:00:00 2001 From: quinn Date: Fri, 17 Jul 2026 10:18:03 +0700 Subject: [PATCH 1/4] chore: disable email domain validation in SAML auth endpoint --- pages/api/saml/auth.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pages/api/saml/auth.ts b/pages/api/saml/auth.ts index 55244a6b..fc48e6bc 100644 --- a/pages/api/saml/auth.ts +++ b/pages/api/saml/auth.ts @@ -9,9 +9,9 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse) if (req.method === 'POST') { const { email, audience, acsUrl, id, relayState } = req.body; - if (!email.endsWith('@example.com') && !email.endsWith('@example.org')) { - res.status(403).send(`${email} denied access`); - } + // if (!email.endsWith('@example.com') && !email.endsWith('@example.org')) { + // res.status(403).send(`${email} denied access`); + // } const userId = createHash('sha256').update(email).digest('hex'); const userName = email.split('@')[0]; From 8d9723fd7f6d920638c08660b350ba10f8bb885f Mon Sep 17 00:00:00 2001 From: quinn Date: Fri, 17 Jul 2026 10:39:20 +0700 Subject: [PATCH 2/4] chore: update Docker image path to quinnofficial/mock-saml-x --- .github/workflows/docker-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index b1e07220..7afbbaa8 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -26,7 +26,7 @@ jobs: - run: | npm install - IMAGE_PATH=boxyhq/mock-saml + IMAGE_PATH=quinnofficial/mock-saml-x echo "IMAGE_PATH=${IMAGE_PATH}" >> $GITHUB_OUTPUT MOCK_SAML_VERSION=$(echo $(cat ./package.json) | ./node_modules/json/lib/json.js version) echo "NPMVERSION=$(echo ${MOCK_SAML_VERSION})" >> $GITHUB_OUTPUT From bbde7ae81fc92a5957909d0ce9767f6bab58f143 Mon Sep 17 00:00:00 2001 From: quinn Date: Fri, 17 Jul 2026 13:46:32 +0700 Subject: [PATCH 3/4] ci: update docker release triggers and update documentation to point to custom image repository --- .github/workflows/docker-publish.yml | 4 ++-- README.md | 30 +++++++++++++++++++++++----- 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 7afbbaa8..bb4d21de 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -47,7 +47,7 @@ jobs: uses: docker/setup-buildx-action@v4 - name: Login to Docker Hub - if: github.ref == 'refs/heads/release' + if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/release' || startsWith(github.ref, 'refs/tags/') uses: docker/login-action@v4 with: username: ${{ secrets.DOCKER_HUB_USERNAME }} @@ -60,7 +60,7 @@ jobs: context: ./ file: ./Dockerfile platforms: linux/amd64,linux/arm64 - push: ${{ github.ref == 'refs/heads/release' }} + push: ${{ github.ref == 'refs/heads/main' || github.ref == 'refs/heads/release' || startsWith(github.ref, 'refs/tags/') }} tags: ${{ steps.npmversion.outputs.IMAGE_PATH }}:latest,${{ steps.npmversion.outputs.IMAGE_PATH }}:${{ steps.slug.outputs.SHA7 }},${{ steps.npmversion.outputs.IMAGE_PATH }}:${{ steps.npmversion.outputs.NPMVERSION }} - name: Image digest diff --git a/README.md b/README.md index 40cf65bb..1e580e4d 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,9 @@ Try [Mock SAML](https://mocksaml.com/), our free hosted service. Whilst we use t ### With Docker -The docker container can be found at [boxyhq/mock-saml](https://hub.docker.com/r/boxyhq/mock-saml). +The docker container can be found at [quinnofficial/mock-saml-x](https://hub.docker.com/r/quinnofficial/mock-saml-x). + +#### Option 1: Passing environment variables via command line ```bash docker run \ @@ -22,21 +24,39 @@ docker run \ -e ENTITY_ID="https://saml.example.com/entityid" \ -e PUBLIC_KEY="" \ -e PRIVATE_KEY="" \ - -d boxyhq/mock-saml + -d quinnofficial/mock-saml-x ``` -Refer to [env.example](https://github.com/boxyhq/mock-saml/blob/main/.env.example#L5C3-L5C97) for instructions on how to create the key pair. +Refer to [env.example](https://github.com/quinnrunsystem/mocksaml/blob/main/.env.example#L5) for instructions on how to create the key pair. Replace `` with Base64 encoded value of public key. Replace `` with Base64 encoded value of private key. +#### Option 2: Using a `.env` file + +To avoid errors or shell parsing issues with multiline keys (like public/private keys) in command arguments, you can configure your environment variables in a `.env` file: + +```bash +cp .env.example .env +# Edit .env and configure the variables (APP_URL, ENTITY_ID, PUBLIC_KEY, PRIVATE_KEY) +``` + +Then run the container referencing the `.env` file: + +```bash +docker run \ + -p 4000:4000 \ + --env-file .env \ + -d quinnofficial/mock-saml-x +``` + ### Without Docker ``` -git clone https://github.com/boxyhq/mock-saml.git +git clone https://github.com/quinnrunsystem/mocksaml.git ``` ``` -cd mock-saml +cd mocksaml ``` Install dependencies From b03d4456df670e5a2efb9185c0243a26cd38c2ca Mon Sep 17 00:00:00 2001 From: GNaDiah Date: Tue, 21 Jul 2026 11:24:45 +0700 Subject: [PATCH 4/4] update domain --- pages/saml/login.tsx | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/pages/saml/login.tsx b/pages/saml/login.tsx index ca84002d..bf0678c5 100644 --- a/pages/saml/login.tsx +++ b/pages/saml/login.tsx @@ -10,9 +10,9 @@ export default function Login() { const authUrl = namespace ? `/api/namespace/${namespace}/saml/auth` : '/api/saml/auth'; const [state, setState] = useState({ username: 'jackson', - domain: 'example.com', - acsUrl: 'https://sso.eu.boxyhq.com/api/oauth/saml', - audience: 'https://saml.boxyhq.com', + domain: 'runsystem.net', + acsUrl: 'http://localhost:3333/auth/saml/acs', + audience: 'jackson', }); const acsUrlInp = useRef(null); @@ -135,8 +135,7 @@ export default function Login() { value={state.domain} onChange={handleChange} className='w-full rounded-md border border-gray-300 px-3 py-2 text-sm focus:border-primary focus:ring-2 focus:ring-primary/30'> - - + @@ -165,8 +164,7 @@ export default function Login() {

This is a simulated login screen. You may choose any username, but only the domains{' '} - example.com and{' '} - example.org are allowed. + runsystem.net and{' '}