A golang webfinger server implementation
25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Matt Baer 824606d410 Allow lookup accounts without acct: scheme 5 년 전
.gitignore Add .gitignore 5 년 전
LICENSE Initial commit of webfinger service 7 년 전
README.md Update GoDoc badge 5 년 전
account.go Allow lookup accounts without acct: scheme 5 년 전
account_test.go Initial commit of webfinger service 7 년 전
doc.go Initial commit of webfinger service 7 년 전
error.go Initial commit of webfinger service 7 년 전
error_test.go Initial commit of webfinger service 7 년 전
http.go Send request.Host information in FindUser() call 5 년 전
http_test.go Send request.Host information in FindUser() call 5 년 전
link.go Fix JSON property for Link's Rel field 5 년 전
middleware.go Initial commit of webfinger service 7 년 전
resolver.go Send request.Host information in FindUser() call 5 년 전
resource.go Initial commit of webfinger service 7 년 전
service.go Initial commit of webfinger service 7 년 전

README.md

GoDoc

go-webfinger

go-webfinger is a golang webfinger server implementation. See v1.0 for the latest stable version, and our Code.as repo for the Write.as-specific implementation.

Past v1.0, this fork was made especially for federation support on Write.as, which includes users across write.as, *.writeas.com, and custom domains we host. The master branch contains changes specific to our implementation, and will change without notification.

Usage

webfinger.Service is implemented as a net/http handler, which means usage is simply registering the object with your http service.

Using the webfinger service as the main ServeHTTP:

myResolver = ...
wf := webfinger.Default(myResolver{})
wf.NotFoundHandler = // the rest of your app
http.ListenAndService(":8080", wf)

Using the webfinger service as a route on an existing HTTP router:

myResolver = ...
wf := webfinger.Default(myResolver{})
http.Handle(webfinger.WebFingerPath, http.HandlerFunc(wf.Webfinger))
http.ListenAndService(":8080", nil)

Defaults

The webfinger service is installed with a few defaults. Some of these defaults ensure we stick closely to the webfinger specification (tls-only, CORS, Content-Type) and other defaults are simply useful for development (no-cache)

The full list of defaults can be found in the godoc for webfinger.Service. They are exposed as public variables which can be overriden.

PreHandlers are the list of preflight HTTP handlers to run. You can add your own via wf.PreHandlers["my-custom-name"] = ..., however, execution order is not guaranteed.

TLS-Only

Handler which routes to the TLS version of the page. Disable via wf.NoTLSHandler = nil.

No-Cache

A PreFlight handler which sets no-cache headers on anything under /.well-known/webfinger. Disable or override via wf.PreHandlers[webfinger.NoCacheMiddleware]

Content Type as application/jrd+json

A PreFlight handler which sets the Content-Type to application/jrd+json. Disable or override via wf.PreHandlers[webfinger.ContentTypeMiddleware].

CORS

A PreFlight handler which adds the CORS headers. Disable or override via wf.PreHandlers[webfinger.CorsMiddleware].