@@ -2,37 +2,61 @@ package main
22
33import (
44 "encoding/json"
5+ "flag"
6+ "fmt"
7+ "github.com/go-oauth2/oauth2/v4/generates"
8+ "io"
59 "log"
610 "net/http"
11+ "net/http/httputil"
712 "net/url"
813 "os"
914 "time"
1015
11- "github.com/dgrijalva/jwt-go"
1216 "github.com/go-oauth2/oauth2/v4/errors"
13- "github.com/go-oauth2/oauth2/v4/generates"
1417 "github.com/go-oauth2/oauth2/v4/manage"
1518 "github.com/go-oauth2/oauth2/v4/models"
1619 "github.com/go-oauth2/oauth2/v4/server"
1720 "github.com/go-oauth2/oauth2/v4/store"
1821 "github.com/go-session/session"
1922)
2023
24+ var (
25+ dumpvar bool
26+ idvar string
27+ secretvar string
28+ domainvar string
29+ portvar int
30+ )
31+
32+ func init () {
33+ flag .BoolVar (& dumpvar , "d" , true , "Dump requests and responses" )
34+ flag .StringVar (& idvar , "i" , "222222" , "The client id being passed in" )
35+ flag .StringVar (& secretvar , "s" , "22222222" , "The client secret being passed in" )
36+ flag .StringVar (& domainvar , "r" , "http://localhost:9094" , "The domain of the redirect url" )
37+ flag .IntVar (& portvar , "p" , 9096 , "the base port for the server" )
38+ }
39+
2140func main () {
41+ flag .Parse ()
42+ if dumpvar {
43+ log .Println ("Dumping requests" )
44+ }
2245 manager := manage .NewDefaultManager ()
2346 manager .SetAuthorizeCodeTokenCfg (manage .DefaultAuthorizeCodeTokenCfg )
2447
2548 // token store
2649 manager .MustTokenStorage (store .NewMemoryTokenStore ())
2750
2851 // generate jwt access token
29- manager .MapAccessGenerate (generates .NewJWTAccessGenerate ("" , []byte ("00000000" ), jwt .SigningMethodHS512 ))
52+ // manager.MapAccessGenerate(generates.NewJWTAccessGenerate("", []byte("00000000"), jwt.SigningMethodHS512))
53+ manager .MapAccessGenerate (generates .NewAccessGenerate ())
3054
3155 clientStore := store .NewClientStore ()
32- clientStore .Set ("222222" , & models.Client {
33- ID : "222222" ,
34- Secret : "22222222" ,
35- Domain : "http://localhost:9094" ,
56+ clientStore .Set (idvar , & models.Client {
57+ ID : idvar ,
58+ Secret : secretvar ,
59+ Domain : domainvar ,
3660 })
3761 manager .MapClientStorage (clientStore )
3862
@@ -60,6 +84,10 @@ func main() {
6084 http .HandleFunc ("/auth" , authHandler )
6185
6286 http .HandleFunc ("/authorize" , func (w http.ResponseWriter , r * http.Request ) {
87+ if dumpvar {
88+ dumpRequest (os .Stdout , "authorize" , r )
89+ }
90+
6391 store , err := session .Start (r .Context (), w , r )
6492 if err != nil {
6593 http .Error (w , err .Error (), http .StatusInternalServerError )
@@ -82,13 +110,20 @@ func main() {
82110 })
83111
84112 http .HandleFunc ("/token" , func (w http.ResponseWriter , r * http.Request ) {
113+ if dumpvar {
114+ _ = dumpRequest (os .Stdout , "token" , r ) // Ignore the error
115+ }
116+
85117 err := srv .HandleTokenRequest (w , r )
86118 if err != nil {
87119 http .Error (w , err .Error (), http .StatusInternalServerError )
88120 }
89121 })
90122
91123 http .HandleFunc ("/test" , func (w http.ResponseWriter , r * http.Request ) {
124+ if dumpvar {
125+ _ = dumpRequest (os .Stdout , "test" , r ) // Ignore the error
126+ }
92127 token , err := srv .ValidationBearerToken (r )
93128 if err != nil {
94129 http .Error (w , err .Error (), http .StatusBadRequest )
@@ -105,11 +140,24 @@ func main() {
105140 e .Encode (data )
106141 })
107142
108- log .Println ("Server is running at 9096 port." )
109- log .Fatal (http .ListenAndServe (":9096" , nil ))
143+ log .Printf ("Server is running at %d port.\n " , portvar )
144+ log .Fatal (http .ListenAndServe (fmt .Sprintf (":%d" ,portvar ), nil ))
145+ }
146+
147+ func dumpRequest (writer io.Writer , header string , r * http.Request ) error {
148+ data , err := httputil .DumpRequest (r , true )
149+ if err != nil {
150+ return err
151+ }
152+ writer .Write ([]byte ("\n " + header + ": \n " ))
153+ writer .Write (data )
154+ return nil
110155}
111156
112157func userAuthorizeHandler (w http.ResponseWriter , r * http.Request ) (userID string , err error ) {
158+ if dumpvar {
159+ _ = dumpRequest (os .Stdout , "userAuthorizeHandler" , r ) // Ignore the error
160+ }
113161 store , err := session .Start (r .Context (), w , r )
114162 if err != nil {
115163 return
@@ -136,6 +184,9 @@ func userAuthorizeHandler(w http.ResponseWriter, r *http.Request) (userID string
136184}
137185
138186func loginHandler (w http.ResponseWriter , r * http.Request ) {
187+ if dumpvar {
188+ _ = dumpRequest (os .Stdout , "login" , r ) // Ignore the error
189+ }
139190 store , err := session .Start (r .Context (), w , r )
140191 if err != nil {
141192 http .Error (w , err .Error (), http .StatusInternalServerError )
@@ -160,6 +211,9 @@ func loginHandler(w http.ResponseWriter, r *http.Request) {
160211}
161212
162213func authHandler (w http.ResponseWriter , r * http.Request ) {
214+ if dumpvar {
215+ _ = dumpRequest (os .Stdout , "auth" , r ) // Ignore the error
216+ }
163217 store , err := session .Start (nil , w , r )
164218 if err != nil {
165219 http .Error (w , err .Error (), http .StatusInternalServerError )
0 commit comments