theonedev/onedev · warning · UnauthenticatedException

User sign-up is disabled

Error message

User sign-up is disabled

What it means

SignUpPage's constructor rejects access when self-registration is disabled: if getSecuritySetting().isEnableSelfRegister() is false it throws UnauthenticatedException('User sign-up is disabled'), so the sign-up page only renders when open registration is turned on in security settings.

Source

Thrown at server-core/src/main/java/io/onedev/server/web/page/security/SignUpPage.java:47

import io.onedev.server.model.User;
import io.onedev.server.model.support.administration.SecuritySetting;
import io.onedev.server.persistence.TransactionService;
import io.onedev.server.security.SecurityUtils;
import io.onedev.server.util.Path;
import io.onedev.server.util.PathNode;
import io.onedev.server.util.patternset.PatternSet;
import io.onedev.server.web.editable.BeanContext;
import io.onedev.server.web.editable.BeanEditor;
import io.onedev.server.web.page.HomePage;
import io.onedev.server.web.page.simple.SimplePage;

public class SignUpPage extends SimplePage {
	
	public SignUpPage(PageParameters params) {
		super(params);
		
		if (!getSecuritySetting().isEnableSelfRegister())
			throw new UnauthenticatedException("User sign-up is disabled");
		if (getLoginUser() != null)
			throw new IllegalStateException("Cannot sign up a user while signed in");
	}
	
	private SecuritySetting getSecuritySetting() {
		return OneDev.getInstance(SettingService.class).getSecuritySetting();
	}
	
	@Override
	protected void onInitialize() {
		super.onInitialize();

		SignUpBean bean = new SignUpBean();
		BeanEditor editor = BeanContext.edit("editor", bean, Sets.newHashSet(PROP_TYPE, PROP_NOTIFY_OWN_EVENTS), true);
		
		Form<?> form = new Form<Void>("form") {

			@Override

View on GitHub (pinned to d44925c47c)

Solutions

  1. Ask an administrator to enable self-registration in Security Setting (Authentication section) if open sign-up is desired.
  2. Use the admin's user-invitation or manual user creation flow instead.
  3. Log in via the configured SSO/LDAP provider if accounts are provisioned there.
  4. Navigate to login page; registration may be invitation-based only.
Defensive patterns

Strategy: fallback

Validate before calling

boolean canRegister = OneDev.getInstance(SettingService.class)
    .getSecuritySetting().isEnableSelfRegister();
if (!canRegister) { /* hide sign-up link, show invitation/login path */ }

Try / catch

try {
  openSignUpPage();
} catch (UnauthenticatedException e) {
  // redirect to login page
}

Prevention

When it happens

Trigger: Visiting the sign-up URL (directly or via a 'register' link) while SecuritySetting.enableSelfRegister is false — the default in many hardened installs or after an admin disabled open registration.

Common situations: Bookmarked sign-up page after an admin disabled self-registration; sharing a sign-up link with external users on an invitation-only server; fresh instance configured for SSO/LDAP-only provisioning.

Related errors


AI-assisted analysis of theonedev/onedev@d44925c47c (2026-09-06). Data as JSON: /api/errors/ffc3d55b2c73d154. Report an issue: GitHub.