forked from baron/baron-sso
병합 오류 수정
This commit is contained in:
@@ -6,6 +6,7 @@ type HydraClient struct {
|
|||||||
ClientID string `json:"client_id"`
|
ClientID string `json:"client_id"`
|
||||||
ClientName string `json:"client_name,omitempty"`
|
ClientName string `json:"client_name,omitempty"`
|
||||||
ClientSecret string `json:"client_secret,omitempty"` // Added
|
ClientSecret string `json:"client_secret,omitempty"` // Added
|
||||||
|
ClientURI string `json:"client_uri,omitempty"`
|
||||||
RedirectURIs []string `json:"redirect_uris,omitempty"`
|
RedirectURIs []string `json:"redirect_uris,omitempty"`
|
||||||
GrantTypes []string `json:"grant_types,omitempty"`
|
GrantTypes []string `json:"grant_types,omitempty"`
|
||||||
ResponseTypes []string `json:"response_types,omitempty"`
|
ResponseTypes []string `json:"response_types,omitempty"`
|
||||||
@@ -23,6 +24,13 @@ type HydraConsentRequest struct {
|
|||||||
Client HydraClient `json:"client"`
|
Client HydraClient `json:"client"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type HydraLoginRequest struct {
|
||||||
|
Challenge string `json:"challenge"`
|
||||||
|
Subject string `json:"subject"`
|
||||||
|
Skip bool `json:"skip"`
|
||||||
|
Client HydraClient `json:"client"`
|
||||||
|
}
|
||||||
|
|
||||||
type HydraConsentSession struct {
|
type HydraConsentSession struct {
|
||||||
ConsentRequestID string `json:"consent_request_id,omitempty"`
|
ConsentRequestID string `json:"consent_request_id,omitempty"`
|
||||||
Subject string `json:"subject,omitempty"`
|
Subject string `json:"subject,omitempty"`
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import (
|
|||||||
// It maps 1:1 to a Hydra Client.
|
// It maps 1:1 to a Hydra Client.
|
||||||
type RelyingParty struct {
|
type RelyingParty struct {
|
||||||
ClientID string `gorm:"primaryKey" json:"clientId"` // Maps to Hydra Client ID
|
ClientID string `gorm:"primaryKey" json:"clientId"` // Maps to Hydra Client ID
|
||||||
TenantID string `gorm:"index;not null" json:"tenantId"`
|
TenantID string `gorm:"index" json:"tenantId"`
|
||||||
Name string `json:"name"` // Display name (can be same as Hydra Client Name)
|
Name string `json:"name"` // Display name (can be same as Hydra Client Name)
|
||||||
Description string `json:"description"`
|
Description string `json:"description"`
|
||||||
CreatedAt time.Time `json:"createdAt"`
|
CreatedAt time.Time `json:"createdAt"`
|
||||||
|
|||||||
@@ -25,49 +25,6 @@ type HydraAdminService struct {
|
|||||||
HTTPClient *http.Client
|
HTTPClient *http.Client
|
||||||
}
|
}
|
||||||
|
|
||||||
type HydraClient struct {
|
|
||||||
ClientID string `json:"client_id"`
|
|
||||||
ClientName string `json:"client_name,omitempty"`
|
|
||||||
ClientSecret string `json:"client_secret,omitempty"`
|
|
||||||
ClientURI string `json:"client_uri,omitempty"` // Added
|
|
||||||
RedirectURIs []string `json:"redirect_uris,omitempty"`
|
|
||||||
GrantTypes []string `json:"grant_types,omitempty"`
|
|
||||||
ResponseTypes []string `json:"response_types,omitempty"`
|
|
||||||
Scope string `json:"scope,omitempty"`
|
|
||||||
TokenEndpointAuthMethod string `json:"token_endpoint_auth_method,omitempty"`
|
|
||||||
Metadata map[string]interface{} `json:"metadata,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type HydraConsentRequest struct {
|
|
||||||
Challenge string `json:"challenge"`
|
|
||||||
RequestedScope []string `json:"requested_scope"`
|
|
||||||
RequestedAudience []string `json:"requested_access_token_audience"`
|
|
||||||
Skip bool `json:"skip"`
|
|
||||||
Subject string `json:"subject"`
|
|
||||||
Client HydraClient `json:"client"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type HydraLoginRequest struct {
|
|
||||||
Challenge string `json:"challenge"`
|
|
||||||
Subject string `json:"subject"`
|
|
||||||
Skip bool `json:"skip"`
|
|
||||||
Client HydraClient `json:"client"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type HydraConsentSession struct {
|
|
||||||
ConsentRequestID string `json:"consent_request_id,omitempty"`
|
|
||||||
Subject string `json:"subject,omitempty"`
|
|
||||||
GrantedScope []string `json:"grant_scope,omitempty"`
|
|
||||||
GrantedAudience []string `json:"grant_access_token_audience,omitempty"`
|
|
||||||
Remember bool `json:"remember"`
|
|
||||||
RememberFor int `json:"remember_for,omitempty"`
|
|
||||||
AuthenticatedAt *time.Time `json:"authenticated_at,omitempty"`
|
|
||||||
RequestedAt *time.Time `json:"requested_at,omitempty"`
|
|
||||||
HandledAt *time.Time `json:"handled_at,omitempty"`
|
|
||||||
Client HydraClient `json:"client,omitempty"`
|
|
||||||
ConsentRequest *HydraConsentRequest `json:"consent_request,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewHydraAdminService() *HydraAdminService {
|
func NewHydraAdminService() *HydraAdminService {
|
||||||
return &HydraAdminService{
|
return &HydraAdminService{
|
||||||
AdminURL: getenv("HYDRA_ADMIN_URL", "http://hydra:4445"),
|
AdminURL: getenv("HYDRA_ADMIN_URL", "http://hydra:4445"),
|
||||||
@@ -389,7 +346,7 @@ type RejectLoginRequestResponse struct {
|
|||||||
RedirectTo string `json:"redirectTo"`
|
RedirectTo string `json:"redirectTo"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *HydraAdminService) GetConsentRequest(ctx context.Context, challenge string) (*HydraConsentRequest, error) {
|
func (s *HydraAdminService) GetConsentRequest(ctx context.Context, challenge string) (*domain.HydraConsentRequest, error) {
|
||||||
params := map[string]string{
|
params := map[string]string{
|
||||||
"consent_challenge": challenge,
|
"consent_challenge": challenge,
|
||||||
}
|
}
|
||||||
@@ -506,7 +463,7 @@ func (s *HydraAdminService) RejectLoginRequest(ctx context.Context, challenge, e
|
|||||||
return &RejectLoginRequestResponse{RedirectTo: hydraResp.RedirectTo}, nil
|
return &RejectLoginRequestResponse{RedirectTo: hydraResp.RedirectTo}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *HydraAdminService) GetLoginRequest(ctx context.Context, challenge string) (*HydraLoginRequest, error) {
|
func (s *HydraAdminService) GetLoginRequest(ctx context.Context, challenge string) (*domain.HydraLoginRequest, error) {
|
||||||
params := map[string]string{
|
params := map[string]string{
|
||||||
"login_challenge": challenge,
|
"login_challenge": challenge,
|
||||||
}
|
}
|
||||||
@@ -531,7 +488,7 @@ func (s *HydraAdminService) GetLoginRequest(ctx context.Context, challenge strin
|
|||||||
return nil, fmt.Errorf("hydra admin: get login failed status=%d body=%s", resp.StatusCode, string(body))
|
return nil, fmt.Errorf("hydra admin: get login failed status=%d body=%s", resp.StatusCode, string(body))
|
||||||
}
|
}
|
||||||
|
|
||||||
var loginReq HydraLoginRequest
|
var loginReq domain.HydraLoginRequest
|
||||||
if err := json.Unmarshal(body, &loginReq); err != nil {
|
if err := json.Unmarshal(body, &loginReq); err != nil {
|
||||||
return nil, fmt.Errorf("hydra admin: decode get login response failed: %w", err)
|
return nil, fmt.Errorf("hydra admin: decode get login response failed: %w", err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -156,4 +156,4 @@
|
|||||||
"authorizer": { "handler": "allow" },
|
"authorizer": { "handler": "allow" },
|
||||||
"mutators": [{ "handler": "noop" }]
|
"mutators": [{ "handler": "noop" }]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
Reference in New Issue
Block a user