@@ -100,6 +100,26 @@ func (s *OIDCSuite) Test_ResolveUser_LinkByUsername_BindsExistingUser() {
100100 assert .Equal (s .T (), uint (1 ), bound .ID )
101101}
102102
103+ func (s * OIDCSuite ) Test_ResolveUser_InvalidIssuer () {
104+ s .db .NewUserWithName (1 , "alice" )
105+
106+ info := & oidc.UserInfo {Subject : "sub-1" , Claims : map [string ]any {"preferred_username" : "alice" }}
107+ _ , status , err := s .a .resolveUser ("://example.org" , info )
108+
109+ assert .EqualError (s .T (), err , `issuer url "://example.org" is not a valid url: parse "://example.org": missing protocol scheme` )
110+ assert .Equal (s .T (), 500 , status )
111+ }
112+
113+ func (s * OIDCSuite ) Test_ResolveUser_InvalidIssuer_containsFragment () {
114+ s .db .NewUserWithName (1 , "alice" )
115+
116+ info := & oidc.UserInfo {Subject : "sub-1" , Claims : map [string ]any {"preferred_username" : "alice" }}
117+ _ , status , err := s .a .resolveUser (testIssuer + "#" , info )
118+
119+ assert .EqualError (s .T (), err , `issuer url "https://idp.example.com#" may not contain a fragment` )
120+ assert .Equal (s .T (), 500 , status )
121+ }
122+
103123func (s * OIDCSuite ) Test_ResolveUser_LinkDisabled_RejectsExistingUsername () {
104124 s .db .NewUserWithName (1 , "alice" )
105125
0 commit comments