Skip to content

Commit

Permalink
Merge pull request oauth2-proxy#2025 from corybolar/embedded-static-f…
Browse files Browse the repository at this point in the history
…iles

Embed static stylesheets and dependencies
  • Loading branch information
JoelSpeed authored Aug 25, 2023
2 parents bd867b5 + 40ee2bb commit 9215944
Show file tree
Hide file tree
Showing 8 changed files with 23 additions and 3 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
- [#2013](https://github.com/oauth2-proxy/oauth2-proxy/pull/2013) Upgrade alpine to version 3.17.2 and library dependencies (@miguelborges99)
- [#2047](https://github.com/oauth2-proxy/oauth2-proxy/pull/2047) CVE-2022-41717: DoS in Go net/http may lead to DoS (@miguelborges99)
- [#1921](https://github.com/oauth2-proxy/oauth2-proxy/pull/1921) Check jsonpath syntax before interpretation
- [#2025](https://github.com/oauth2-proxy/oauth2-proxy/pull/2025) Embed static stylesheets and dependencies

# V7.4.0

Expand Down
1 change: 1 addition & 0 deletions docs/docs/features/endpoints.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ OAuth2 Proxy responds directly to the following endpoints. All other endpoints w
- /oauth2/callback - the URL used at the end of the OAuth cycle. The oauth app will be configured with this as the callback url.
- /oauth2/userinfo - the URL is used to return user's email from the session in JSON format.
- /oauth2/auth - only returns a 202 Accepted response or a 401 Unauthorized response; for use with the [Nginx `auth_request` directive](../configuration/overview.md#configuring-for-use-with-the-nginx-auth_request-directive)
- /oauth2/static/\* - stylesheets and other dependencies used in the sign_in and error pages

### Sign out

Expand Down
8 changes: 8 additions & 0 deletions oauthproxy.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package main

import (
"context"
"embed"
"encoding/json"
"errors"
"fmt"
Expand Down Expand Up @@ -50,6 +51,7 @@ const (
oauthCallbackPath = "/callback"
authOnlyPath = "/auth"
userInfoPath = "/userinfo"
staticPathPrefix = "/static/"
)

var (
Expand All @@ -58,6 +60,9 @@ var (

// ErrAccessDenied means the user should receive a 401 Unauthorized response
ErrAccessDenied = errors.New("access denied")

//go:embed static/*
staticFiles embed.FS
)

// allowedRoute manages method + path based allowlists
Expand Down Expand Up @@ -320,6 +325,9 @@ func (p *OAuthProxy) buildProxySubrouter(s *mux.Router) {
s.Path(oauthStartPath).HandlerFunc(p.OAuthStart)
s.Path(oauthCallbackPath).HandlerFunc(p.OAuthCallback)

// Static file paths
s.PathPrefix(staticPathPrefix).Handler(http.StripPrefix(p.ProxyPrefix, http.FileServer(http.FS(staticFiles))))

// The userinfo endpoint needs to load sessions before handling the request
s.Path(userInfoPath).Handler(p.sessionChain.ThenFunc(p.UserInfo))
}
Expand Down
4 changes: 2 additions & 2 deletions pkg/app/pagewriter/error.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<title>{{.StatusCode}} {{.Title}}</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/css/bulma.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.2/css/all.min.css">
<link rel="stylesheet" href="{{.ProxyPrefix}}/static/css/bulma.min.css">
<link rel="stylesheet" href="{{.ProxyPrefix}}/static/css/all.min.css">

<script type="text/javascript">
document.addEventListener('DOMContentLoaded', function() {
Expand Down
2 changes: 1 addition & 1 deletion pkg/app/pagewriter/sign_in.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<title>Sign In</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/css/bulma.min.css">
<link rel="stylesheet" href="{{.ProxyPrefix}}/static/css/bulma.min.css">

<style>
body {
Expand Down
9 changes: 9 additions & 0 deletions static/css/all.min.css

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions static/css/bulma.min.css

Large diffs are not rendered by default.

Binary file added static/webfonts/fa-solid-900.woff2
Binary file not shown.

0 comments on commit 9215944

Please sign in to comment.