From 269c5043ab8f66f67d5719ac5149a436ca1baa2b Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Fri, 29 Nov 2013 11:05:51 -0500 Subject: [PATCH] Extract Federation, Gitblit and Services manager from GitBlit singleton --- src/main/java/com/gitblit/PAMUserService.java | 23 ++++++++++++----------- 1 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/gitblit/PAMUserService.java b/src/main/java/com/gitblit/PAMUserService.java index 692b0f4..db569fb 100644 --- a/src/main/java/com/gitblit/PAMUserService.java +++ b/src/main/java/com/gitblit/PAMUserService.java @@ -24,13 +24,14 @@ import org.slf4j.LoggerFactory; import com.gitblit.Constants.AccountType; +import com.gitblit.manager.IRuntimeManager; import com.gitblit.models.UserModel; import com.gitblit.utils.ArrayUtils; import com.gitblit.utils.StringUtils; /** * Implementation of a PAM user service for Linux/Unix/MacOSX. - * + * * @author James Moger */ public class PAMUserService extends GitblitUserService { @@ -38,21 +39,21 @@ private final Logger logger = LoggerFactory.getLogger(PAMUserService.class); private IStoredSettings settings; - + public PAMUserService() { super(); } @Override - public void setup(IStoredSettings settings) { - this.settings = settings; + public void setup(IRuntimeManager runtimeManager) { + this.settings = runtimeManager.getSettings(); String file = settings.getString(Keys.realm.pam.backingUserService, "${baseFolder}/users.conf"); - File realmFile = GitBlit.getFileOrFolder(file); + File realmFile = runtimeManager.getFileOrFolder(file); serviceImpl = createUserService(realmFile); logger.info("PAM User Service backed by " + serviceImpl.toString()); - + // Try to identify the passwd database String [] files = { "/etc/shadow", "/etc/master.passwd" }; File passwdFile = null; @@ -69,7 +70,7 @@ logger.error("PAM User Service can not read passwd database {}! PAM authentications may fail!", passwdFile); } } - + @Override public boolean supportsCredentialChanges() { return false; @@ -89,9 +90,9 @@ public boolean supportsTeamMembershipChanges() { return true; } - + @Override - protected AccountType getAccountType() { + public AccountType getAccountType() { return AccountType.PAM; } @@ -101,7 +102,7 @@ // local account, bypass PAM authentication return super.authenticate(username, password); } - + if (CLibrary.libc.getpwnam(username) == null) { logger.warn("Can not get PAM passwd for " + username); return null; @@ -136,7 +137,7 @@ // push the changes to the backing user service super.updateUserModel(user); - + return user; } } -- Gitblit v1.9.1