mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 16:40:24 +08:00 
			
		
		
		
	Disable federation by default (#20045)
This commit is contained in:
		@@ -2249,27 +2249,27 @@ PATH =
 | 
			
		||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 | 
			
		||||
;;
 | 
			
		||||
;; Enable/Disable federation capabilities
 | 
			
		||||
; ENABLED = true
 | 
			
		||||
;ENABLED = false
 | 
			
		||||
;;
 | 
			
		||||
;; Enable/Disable user statistics for nodeinfo if federation is enabled
 | 
			
		||||
; SHARE_USER_STATISTICS = true
 | 
			
		||||
;SHARE_USER_STATISTICS = true
 | 
			
		||||
;;
 | 
			
		||||
;; Maximum federation request and response size (MB)
 | 
			
		||||
; MAX_SIZE = 4
 | 
			
		||||
;MAX_SIZE = 4
 | 
			
		||||
;;
 | 
			
		||||
;; WARNING: Changing the settings below can break federation.
 | 
			
		||||
;;
 | 
			
		||||
;; HTTP signature algorithms
 | 
			
		||||
; ALGORITHMS = rsa-sha256, rsa-sha512, ed25519
 | 
			
		||||
;ALGORITHMS = rsa-sha256, rsa-sha512, ed25519
 | 
			
		||||
;;
 | 
			
		||||
;; HTTP signature digest algorithm
 | 
			
		||||
; DIGEST_ALGORITHM = SHA-256
 | 
			
		||||
;DIGEST_ALGORITHM = SHA-256
 | 
			
		||||
;;
 | 
			
		||||
;; GET headers for federation requests
 | 
			
		||||
; GET_HEADERS = (request-target), Date
 | 
			
		||||
;GET_HEADERS = (request-target), Date
 | 
			
		||||
;;
 | 
			
		||||
;; POST headers for federation requests
 | 
			
		||||
; POST_HEADERS = (request-target), Date, Digest
 | 
			
		||||
;POST_HEADERS = (request-target), Date, Digest
 | 
			
		||||
 | 
			
		||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 | 
			
		||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 | 
			
		||||
 
 | 
			
		||||
@@ -1088,7 +1088,7 @@ Task queue configuration has been moved to `queue.task`. However, the below conf
 | 
			
		||||
 | 
			
		||||
## Federation (`federation`)
 | 
			
		||||
 | 
			
		||||
- `ENABLED`: **true**: Enable/Disable federation capabilities
 | 
			
		||||
- `ENABLED`: **false**: Enable/Disable federation capabilities
 | 
			
		||||
- `SHARE_USER_STATISTICS`: **true**: Enable/Disable user statistics for nodeinfo if federation is enabled
 | 
			
		||||
- `MAX_SIZE`: **4**: Maximum federation request and response size (MB)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -15,18 +15,21 @@ import (
 | 
			
		||||
	user_model "code.gitea.io/gitea/models/user"
 | 
			
		||||
	"code.gitea.io/gitea/modules/activitypub"
 | 
			
		||||
	"code.gitea.io/gitea/modules/setting"
 | 
			
		||||
	"code.gitea.io/gitea/routers"
 | 
			
		||||
 | 
			
		||||
	ap "github.com/go-ap/activitypub"
 | 
			
		||||
	"github.com/stretchr/testify/assert"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func TestActivityPubPerson(t *testing.T) {
 | 
			
		||||
	onGiteaRun(t, func(*testing.T, *url.URL) {
 | 
			
		||||
		setting.Federation.Enabled = true
 | 
			
		||||
		defer func() {
 | 
			
		||||
			setting.Federation.Enabled = false
 | 
			
		||||
		}()
 | 
			
		||||
	setting.Federation.Enabled = true
 | 
			
		||||
	c = routers.NormalRoutes()
 | 
			
		||||
	defer func() {
 | 
			
		||||
		setting.Federation.Enabled = false
 | 
			
		||||
		c = routers.NormalRoutes()
 | 
			
		||||
	}()
 | 
			
		||||
 | 
			
		||||
	onGiteaRun(t, func(*testing.T, *url.URL) {
 | 
			
		||||
		username := "user2"
 | 
			
		||||
		req := NewRequestf(t, "GET", fmt.Sprintf("/api/v1/activitypub/user/%s", username))
 | 
			
		||||
		resp := MakeRequest(t, req, http.StatusOK)
 | 
			
		||||
@@ -56,12 +59,14 @@ func TestActivityPubPerson(t *testing.T) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func TestActivityPubMissingPerson(t *testing.T) {
 | 
			
		||||
	onGiteaRun(t, func(*testing.T, *url.URL) {
 | 
			
		||||
		setting.Federation.Enabled = true
 | 
			
		||||
		defer func() {
 | 
			
		||||
			setting.Federation.Enabled = false
 | 
			
		||||
		}()
 | 
			
		||||
	setting.Federation.Enabled = true
 | 
			
		||||
	c = routers.NormalRoutes()
 | 
			
		||||
	defer func() {
 | 
			
		||||
		setting.Federation.Enabled = false
 | 
			
		||||
		c = routers.NormalRoutes()
 | 
			
		||||
	}()
 | 
			
		||||
 | 
			
		||||
	onGiteaRun(t, func(*testing.T, *url.URL) {
 | 
			
		||||
		req := NewRequestf(t, "GET", "/api/v1/activitypub/user/nonexistentuser")
 | 
			
		||||
		resp := MakeRequest(t, req, http.StatusNotFound)
 | 
			
		||||
		assert.Contains(t, resp.Body.String(), "user redirect does not exist")
 | 
			
		||||
@@ -69,15 +74,20 @@ func TestActivityPubMissingPerson(t *testing.T) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func TestActivityPubPersonInbox(t *testing.T) {
 | 
			
		||||
	setting.Federation.Enabled = true
 | 
			
		||||
	c = routers.NormalRoutes()
 | 
			
		||||
	defer func() {
 | 
			
		||||
		setting.Federation.Enabled = false
 | 
			
		||||
		c = routers.NormalRoutes()
 | 
			
		||||
	}()
 | 
			
		||||
 | 
			
		||||
	srv := httptest.NewServer(c)
 | 
			
		||||
	defer srv.Close()
 | 
			
		||||
 | 
			
		||||
	onGiteaRun(t, func(*testing.T, *url.URL) {
 | 
			
		||||
		appURL := setting.AppURL
 | 
			
		||||
		setting.Federation.Enabled = true
 | 
			
		||||
		setting.AppURL = srv.URL
 | 
			
		||||
		defer func() {
 | 
			
		||||
			setting.Federation.Enabled = false
 | 
			
		||||
			setting.Database.LogSQL = false
 | 
			
		||||
			setting.AppURL = appURL
 | 
			
		||||
		}()
 | 
			
		||||
 
 | 
			
		||||
@@ -11,17 +11,20 @@ import (
 | 
			
		||||
 | 
			
		||||
	"code.gitea.io/gitea/modules/setting"
 | 
			
		||||
	api "code.gitea.io/gitea/modules/structs"
 | 
			
		||||
	"code.gitea.io/gitea/routers"
 | 
			
		||||
 | 
			
		||||
	"github.com/stretchr/testify/assert"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func TestNodeinfo(t *testing.T) {
 | 
			
		||||
	onGiteaRun(t, func(*testing.T, *url.URL) {
 | 
			
		||||
		setting.Federation.Enabled = true
 | 
			
		||||
		defer func() {
 | 
			
		||||
			setting.Federation.Enabled = false
 | 
			
		||||
		}()
 | 
			
		||||
	setting.Federation.Enabled = true
 | 
			
		||||
	c = routers.NormalRoutes()
 | 
			
		||||
	defer func() {
 | 
			
		||||
		setting.Federation.Enabled = false
 | 
			
		||||
		c = routers.NormalRoutes()
 | 
			
		||||
	}()
 | 
			
		||||
 | 
			
		||||
	onGiteaRun(t, func(*testing.T, *url.URL) {
 | 
			
		||||
		req := NewRequestf(t, "GET", "/api/v1/nodeinfo")
 | 
			
		||||
		resp := MakeRequest(t, req, http.StatusOK)
 | 
			
		||||
		var nodeinfo api.NodeInfo
 | 
			
		||||
 
 | 
			
		||||
@@ -21,7 +21,7 @@ var (
 | 
			
		||||
		GetHeaders          []string
 | 
			
		||||
		PostHeaders         []string
 | 
			
		||||
	}{
 | 
			
		||||
		Enabled:             true,
 | 
			
		||||
		Enabled:             false,
 | 
			
		||||
		ShareUserStatistics: true,
 | 
			
		||||
		MaxSize:             4,
 | 
			
		||||
		Algorithms:          []string{"rsa-sha256", "rsa-sha512", "ed25519"},
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user