diff options
| author | zeapo <mohamed@zenadi.com> | 2014-12-17 22:55:45 +0100 |
|---|---|---|
| committer | zeapo <mohamed@zenadi.com> | 2015-01-04 14:53:58 +0100 |
| commit | f48bd5faa01c191f355fd5ebdc2e98f0579b591f (patch) | |
| tree | 127b417d7bd8d990370a222701b8194aba6ad427 /app/src/main/java/com/zeapo/pwdstore/git/config | |
| parent | 33689cefc7a429e4f51607a013f6adc9c01ede94 (diff) | |
| download | HardenedPass-f48bd5faa01c191f355fd5ebdc2e98f0579b591f.tar.gz HardenedPass-f48bd5faa01c191f355fd5ebdc2e98f0579b591f.zip | |
git tasks refactoring (clone working)
Diffstat (limited to 'app/src/main/java/com/zeapo/pwdstore/git/config')
| -rw-r--r-- | app/src/main/java/com/zeapo/pwdstore/git/config/GitConfigSessionFactory.java | 24 | ||||
| -rw-r--r-- | app/src/main/java/com/zeapo/pwdstore/git/config/SshConfigSessionFactory.java | 70 |
2 files changed, 94 insertions, 0 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/git/config/GitConfigSessionFactory.java b/app/src/main/java/com/zeapo/pwdstore/git/config/GitConfigSessionFactory.java new file mode 100644 index 00000000..ab23361e --- /dev/null +++ b/app/src/main/java/com/zeapo/pwdstore/git/config/GitConfigSessionFactory.java @@ -0,0 +1,24 @@ +package com.zeapo.pwdstore.git.config; + +import com.jcraft.jsch.JSch; +import com.jcraft.jsch.JSchException; +import com.jcraft.jsch.Session; + +import org.eclipse.jgit.transport.JschConfigSessionFactory; +import org.eclipse.jgit.transport.OpenSshConfig; +import org.eclipse.jgit.util.FS; + +public class GitConfigSessionFactory extends JschConfigSessionFactory { + + protected void configure(OpenSshConfig.Host hc, Session session) { + session.setConfig("StrictHostKeyChecking", "no"); + } + + @Override + protected JSch + getJSch(final OpenSshConfig.Host hc, FS fs) throws JSchException { + JSch jsch = super.getJSch(hc, fs); + jsch.removeAllIdentity(); + return jsch; + } +}
\ No newline at end of file diff --git a/app/src/main/java/com/zeapo/pwdstore/git/config/SshConfigSessionFactory.java b/app/src/main/java/com/zeapo/pwdstore/git/config/SshConfigSessionFactory.java new file mode 100644 index 00000000..333a6325 --- /dev/null +++ b/app/src/main/java/com/zeapo/pwdstore/git/config/SshConfigSessionFactory.java @@ -0,0 +1,70 @@ +package com.zeapo.pwdstore.git.config; + +import android.content.SharedPreferences; + +import com.jcraft.jsch.JSch; +import com.jcraft.jsch.JSchException; +import com.jcraft.jsch.Session; +import com.jcraft.jsch.UserInfo; + +import org.eclipse.jgit.errors.UnsupportedCredentialItem; +import org.eclipse.jgit.transport.CredentialItem; +import org.eclipse.jgit.transport.CredentialsProvider; +import org.eclipse.jgit.transport.CredentialsProviderUserInfo; +import org.eclipse.jgit.transport.OpenSshConfig; +import org.eclipse.jgit.transport.URIish; +import org.eclipse.jgit.util.FS; + +public class SshConfigSessionFactory extends GitConfigSessionFactory { + private String sshKey; + private String passphrase; + private String username; + + public SshConfigSessionFactory(String sshKey, String username, String passphrase) { + this.sshKey = sshKey; + this.passphrase = passphrase; + this.username = username; + } + + @Override + protected JSch + getJSch(final OpenSshConfig.Host hc, FS fs) throws JSchException { + JSch jsch = super.getJSch(hc, fs); + jsch.removeAllIdentity(); + jsch.addIdentity(sshKey); + return jsch; + } + + @Override + protected void configure(OpenSshConfig.Host hc, Session session) { + session.setConfig("StrictHostKeyChecking", "no"); + + CredentialsProvider provider = new CredentialsProvider() { + @Override + public boolean isInteractive() { + return false; + } + + @Override + public boolean supports(CredentialItem... items) { + return true; + } + + @Override + public boolean get(URIish uri, CredentialItem... items) throws UnsupportedCredentialItem { + for (CredentialItem item : items) { + if (item instanceof CredentialItem.Username) { + ((CredentialItem.Username) item).setValue(username); + continue; + } + if (item instanceof CredentialItem.StringType) { + ((CredentialItem.StringType) item).setValue(passphrase); + } + } + return true; + } + }; + UserInfo userInfo = new CredentialsProviderUserInfo(session, provider); + session.setUserInfo(userInfo); + } +}
\ No newline at end of file |
