fix: webfinger redirects

This commit is contained in:
Jon Lundy
2023-04-02 21:00:22 -06:00
parent 9168f5c7bc
commit b8c2f9f510
15 changed files with 79 additions and 114 deletions

View File

@@ -2,7 +2,6 @@ package peerfinder
import (
"bytes"
"encoding/json"
"github.com/tj/go-semver"
@@ -12,7 +11,7 @@ import (
type Info struct {
ScriptVersion string `json:"script_version"`
event.AggregateRoot
event.IsAggregate
}
var _ event.Aggregate = (*Info)(nil)
@@ -55,10 +54,3 @@ type VersionChanged struct {
}
var _ event.Event = (*VersionChanged)(nil)
func (e *VersionChanged) MarshalBinary() (text []byte, err error) {
return json.Marshal(e)
}
func (e *VersionChanged) UnmarshalBinary(b []byte) error {
return json.Unmarshal(b, e)
}

View File

@@ -94,7 +94,7 @@ func (p *Peer) CanSupport(ip string) bool {
type PeerResults struct {
set.Set[string]
event.AggregateRoot
event.IsAggregate
}
func (p *PeerResults) ApplyEvent(lis ...event.Event) {

View File

@@ -14,7 +14,7 @@ import (
)
type Request struct {
event.AggregateRoot
event.IsAggregate
RequestID string `json:"req_id"`
RequestIP string `json:"req_ip"`
@@ -213,12 +213,6 @@ func (r *ResultSubmitted) Created() time.Time {
var _ event.Event = (*ResultSubmitted)(nil)
func (e *ResultSubmitted) MarshalBinary() (text []byte, err error) {
return json.Marshal(e)
}
func (e *ResultSubmitted) UnmarshalBinary(b []byte) error {
return json.Unmarshal(b, e)
}
func (e *ResultSubmitted) String() string {
return fmt.Sprintf("id: %s\npeer: %s\nversion: %s\nlatency: %0.4f", e.RequestID, e.PeerID, e.PeerVersion, e.Latency)
}
@@ -231,12 +225,6 @@ type RequestTruncated struct {
var _ event.Event = (*RequestTruncated)(nil)
func (e *RequestTruncated) MarshalBinary() (text []byte, err error) {
return json.Marshal(e)
}
func (e *RequestTruncated) UnmarshalBinary(b []byte) error {
return json.Unmarshal(b, e)
}
func (e *RequestTruncated) String() string {
return fmt.Sprintf("request truncated id: %s\n", e.RequestID)
}

View File

@@ -20,7 +20,7 @@ type SaltyUser struct {
pubkey *keys.EdX25519PublicKey
inbox ulid.ULID
event.AggregateRoot
event.IsAggregate
}
var _ event.Aggregate = (*SaltyUser)(nil)

View File

@@ -1,8 +1,6 @@
package webfinger
import (
"encoding/json"
"go.sour.is/ev/pkg/es/event"
)
@@ -14,13 +12,6 @@ type SubjectSet struct {
event.IsEvent
}
func (e *SubjectSet) MarshalBinary() (text []byte, err error) {
return json.Marshal(e)
}
func (e *SubjectSet) UnmarshalBinary(b []byte) error {
return json.Unmarshal(b, e)
}
var _ event.Event = (*SubjectSet)(nil)
type SubjectDeleted struct {
@@ -29,13 +20,6 @@ type SubjectDeleted struct {
event.IsEvent
}
func (e *SubjectDeleted) MarshalBinary() (text []byte, err error) {
return json.Marshal(e)
}
func (e *SubjectDeleted) UnmarshalBinary(b []byte) error {
return json.Unmarshal(b, e)
}
var _ event.Event = (*SubjectDeleted)(nil)
type LinkSet struct {
@@ -48,13 +32,6 @@ type LinkSet struct {
event.IsEvent
}
func (e *LinkSet) MarshalBinary() (text []byte, err error) {
return json.Marshal(e)
}
func (e *LinkSet) UnmarshalBinary(b []byte) error {
return json.Unmarshal(b, e)
}
var _ event.Event = (*LinkSet)(nil)
type LinkDeleted struct {
@@ -63,11 +40,4 @@ type LinkDeleted struct {
event.IsEvent
}
func (e *LinkDeleted) MarshalBinary() (text []byte, err error) {
return json.Marshal(e)
}
func (e *LinkDeleted) UnmarshalBinary(b []byte) error {
return json.Unmarshal(b, e)
}
var _ event.Event = (*LinkDeleted)(nil)

View File

@@ -28,8 +28,8 @@ type JRD struct {
Properties map[string]*string `json:"properties,omitempty" yaml:"properties,omitempty"`
Links Links `json:"links,omitempty" yaml:"links,omitempty"`
deleted bool
event.AggregateRoot `yaml:"-"`
deleted bool
event.IsAggregate `yaml:"-"`
}
func (a *JRD) CloneValues() *JRD {

View File

@@ -231,14 +231,13 @@ func (s *service) ServeHTTP(w http.ResponseWriter, r *http.Request) {
return
}
host, _ := splitHostPort(r.Host)
if u := Parse(resource); u != nil && !s.self.Has(host) {
if u := Parse(resource); u != nil && !s.self.Has(u.URL.Host) {
redirect := &url.URL{}
redirect.Scheme = u.URL.Scheme
redirect.Scheme = "https"
redirect.Host = u.URL.Host
redirect.RawQuery = r.URL.RawQuery
redirect.Path = "/.well-known/webfinger"
fmt.Println(redirect)
w.Header().Set("location", redirect.String())
w.WriteHeader(http.StatusSeeOther)
return