mirror of
https://github.com/theonedev/onedev.git
synced 2025-12-08 18:26:30 +00:00
More ssh code refactoring
This commit is contained in:
parent
859dfc6662
commit
0f738bf172
@ -161,7 +161,7 @@ import io.onedev.server.git.GitFilter;
|
||||
import io.onedev.server.git.GitPostReceiveCallback;
|
||||
import io.onedev.server.git.GitPreReceiveCallback;
|
||||
import io.onedev.server.git.config.GitConfig;
|
||||
import io.onedev.server.git.server.SimpleGitSshServer;
|
||||
import io.onedev.server.git.ssh.SimpleGitSshServer;
|
||||
import io.onedev.server.infomanager.CodeCommentRelationInfoManager;
|
||||
import io.onedev.server.infomanager.CommitInfoManager;
|
||||
import io.onedev.server.infomanager.DefaultCodeCommentRelationInfoManager;
|
||||
|
||||
@ -33,7 +33,7 @@ import io.onedev.server.event.system.SystemStarted;
|
||||
import io.onedev.server.event.system.SystemStarting;
|
||||
import io.onedev.server.event.system.SystemStopped;
|
||||
import io.onedev.server.event.system.SystemStopping;
|
||||
import io.onedev.server.git.server.SimpleGitSshServer;
|
||||
import io.onedev.server.git.ssh.SimpleGitSshServer;
|
||||
import io.onedev.server.maintenance.DataManager;
|
||||
import io.onedev.server.persistence.PersistManager;
|
||||
import io.onedev.server.persistence.SessionManager;
|
||||
|
||||
@ -1,10 +1,9 @@
|
||||
package io.onedev.server.git.server;
|
||||
package io.onedev.server.git.ssh;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Path;
|
||||
import java.security.PublicKey;
|
||||
import java.text.MessageFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
@ -17,9 +16,7 @@ import org.apache.sshd.common.file.virtualfs.VirtualFileSystemFactory;
|
||||
import org.apache.sshd.common.keyprovider.KeyPairProvider;
|
||||
import org.apache.sshd.common.session.Session;
|
||||
import org.apache.sshd.common.util.threads.ThreadUtils;
|
||||
import org.apache.sshd.server.ServerAuthenticationManager;
|
||||
import org.apache.sshd.server.SshServer;
|
||||
import org.apache.sshd.server.auth.UserAuth;
|
||||
import org.apache.sshd.server.command.AbstractCommandSupport;
|
||||
import org.apache.sshd.server.command.Command;
|
||||
import org.apache.sshd.server.shell.UnknownCommand;
|
||||
@ -28,14 +25,11 @@ import org.eclipse.jgit.lib.Repository;
|
||||
import org.eclipse.jgit.transport.ReceivePack;
|
||||
import org.eclipse.jgit.transport.RemoteConfig;
|
||||
import org.eclipse.jgit.transport.UploadPack;
|
||||
import org.hibernate.criterion.Restrictions;
|
||||
import org.hibernate.criterion.SimpleExpression;
|
||||
import io.onedev.server.entitymanager.ProjectManager;
|
||||
import io.onedev.server.entitymanager.impl.DefaultUserManager;
|
||||
import io.onedev.server.model.SshKey;
|
||||
import io.onedev.server.model.User;
|
||||
import io.onedev.server.persistence.dao.Dao;
|
||||
import io.onedev.server.persistence.dao.EntityCriteria;
|
||||
|
||||
@Singleton
|
||||
public class SimpleGitSshServer {
|
||||
@ -92,10 +86,7 @@ public class SimpleGitSshServer {
|
||||
System.out.println("key digest: " + fingerPrint);
|
||||
|
||||
User user = userManager.findByName(userName);
|
||||
SimpleExpression eq = Restrictions.eq("owner", user);
|
||||
EntityCriteria<SshKey> entityCriteria = EntityCriteria.of(SshKey.class).add(eq);
|
||||
|
||||
List<SshKey> keys = dao.query(entityCriteria);
|
||||
List<SshKey> keys = SshUtils.loadUserKeys(user, dao);
|
||||
|
||||
for (SshKey sshKey : keys) {
|
||||
if (fingerPrint.equals(sshKey.getDigest())) {
|
||||
@ -106,18 +97,6 @@ public class SimpleGitSshServer {
|
||||
return false;
|
||||
}
|
||||
|
||||
private List<NamedFactory<UserAuth>> getAuthFactories() {
|
||||
List<NamedFactory<UserAuth>> authentications = new ArrayList<>();
|
||||
|
||||
authentications.add(
|
||||
ServerAuthenticationManager.DEFAULT_USER_AUTH_PUBLIC_KEY_FACTORY);
|
||||
authentications.add(
|
||||
ServerAuthenticationManager.DEFAULT_USER_AUTH_KB_INTERACTIVE_FACTORY);
|
||||
// authentications.add(
|
||||
// ServerAuthenticationManager.DEFAULT_USER_AUTH_PASSWORD_FACTORY);
|
||||
return authentications;
|
||||
}
|
||||
|
||||
private List<NamedFactory<Command>> configureSubsystems() {
|
||||
server.setFileSystemFactory(new VirtualFileSystemFactory() {
|
||||
|
||||
@ -0,0 +1,19 @@
|
||||
package io.onedev.server.git.ssh;
|
||||
|
||||
import java.util.List;
|
||||
import org.hibernate.criterion.Restrictions;
|
||||
import org.hibernate.criterion.SimpleExpression;
|
||||
import io.onedev.server.model.SshKey;
|
||||
import io.onedev.server.model.User;
|
||||
import io.onedev.server.persistence.dao.Dao;
|
||||
import io.onedev.server.persistence.dao.EntityCriteria;
|
||||
|
||||
public class SshUtils {
|
||||
public static List<SshKey> loadUserKeys(User user, Dao dao) {
|
||||
SimpleExpression eq = Restrictions.eq("owner", user);
|
||||
EntityCriteria<SshKey> entityCriteria = EntityCriteria.of(SshKey.class).add(eq);
|
||||
|
||||
List<SshKey> keys = dao.query(entityCriteria);
|
||||
return keys;
|
||||
}
|
||||
}
|
||||
@ -12,6 +12,7 @@ import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
import javax.validation.Validator;
|
||||
import org.apache.shiro.authc.credential.PasswordService;
|
||||
import org.apache.wicket.request.Url;
|
||||
import org.joda.time.DateTime;
|
||||
import org.joda.time.format.DateTimeFormat;
|
||||
import org.quartz.CronScheduleBuilder;
|
||||
@ -30,6 +31,7 @@ import io.onedev.server.entitymanager.RoleManager;
|
||||
import io.onedev.server.entitymanager.SettingManager;
|
||||
import io.onedev.server.entitymanager.UserManager;
|
||||
import io.onedev.server.event.system.SystemStarting;
|
||||
import io.onedev.server.git.ssh.SimpleGitSshServer;
|
||||
import io.onedev.server.model.Setting;
|
||||
import io.onedev.server.model.Setting.Key;
|
||||
import io.onedev.server.model.User;
|
||||
|
||||
@ -21,6 +21,8 @@ public class SystemSetting implements Serializable, Validatable {
|
||||
private static final long serialVersionUID = 1;
|
||||
|
||||
private String serverUrl;
|
||||
|
||||
private String serverSshUrl;
|
||||
|
||||
private GitConfig gitConfig = new SystemGit();
|
||||
|
||||
@ -78,4 +80,12 @@ public class SystemSetting implements Serializable, Validatable {
|
||||
return true;
|
||||
}
|
||||
|
||||
public String getServerSshUrl() {
|
||||
return serverSshUrl;
|
||||
}
|
||||
|
||||
public void setServerSshUrl(String serverSshUrl) {
|
||||
this.serverSshUrl = serverSshUrl;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -16,7 +16,7 @@ import org.apache.wicket.markup.html.form.TextField;
|
||||
import org.apache.wicket.markup.html.panel.Panel;
|
||||
import org.apache.wicket.model.CompoundPropertyModel;
|
||||
import io.onedev.server.OneDev;
|
||||
import io.onedev.server.git.server.SimpleGitSshServer;
|
||||
import io.onedev.server.git.ssh.SimpleGitSshServer;
|
||||
import io.onedev.server.model.SshKey;
|
||||
import io.onedev.server.model.User;
|
||||
import io.onedev.server.persistence.dao.Dao;
|
||||
|
||||
@ -13,13 +13,11 @@ import org.apache.wicket.markup.html.list.ListItem;
|
||||
import org.apache.wicket.markup.html.list.ListView;
|
||||
import org.apache.wicket.model.LoadableDetachableModel;
|
||||
import org.apache.wicket.request.mapper.parameter.PageParameters;
|
||||
import org.hibernate.criterion.Restrictions;
|
||||
import org.hibernate.criterion.SimpleExpression;
|
||||
import io.onedev.server.OneDev;
|
||||
import io.onedev.server.git.ssh.SshUtils;
|
||||
import io.onedev.server.model.SshKey;
|
||||
import io.onedev.server.model.User;
|
||||
import io.onedev.server.persistence.dao.Dao;
|
||||
import io.onedev.server.persistence.dao.EntityCriteria;
|
||||
import io.onedev.server.web.component.modal.ModalLink;
|
||||
import io.onedev.server.web.component.modal.ModalPanel;
|
||||
import io.onedev.server.web.page.my.MyPage;
|
||||
@ -54,13 +52,10 @@ public class MySshKeysPage extends MyPage {
|
||||
});
|
||||
|
||||
LoadableDetachableModel<List<SshKey>> detachableModel = new LoadableDetachableModel<List<SshKey>>() {
|
||||
final SimpleExpression eq = Restrictions.eq("owner", user);
|
||||
|
||||
@Override
|
||||
protected List<SshKey> load() {
|
||||
Dao dao = OneDev.getInstance(Dao.class);
|
||||
EntityCriteria<SshKey> entityCriteria = EntityCriteria.of(SshKey.class).add(eq);
|
||||
return dao.query(entityCriteria);
|
||||
return SshUtils.loadUserKeys(user, dao);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user