org.apache.sshd.server.Environment类的使用及代码示例

x33g5p2x  于2022-01-19 转载在 其他  
字(8.9k)|赞(0)|评价(0)|浏览(109)

本文整理了Java中org.apache.sshd.server.Environment类的一些代码示例,展示了Environment类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Environment类的具体详情如下:
包路径:org.apache.sshd.server.Environment
类名称:Environment

Environment介绍

[英]Interface providing access to the environment map and allowing the registration of listeners for certain signals.
[中]接口提供对环境地图的访问,并允许注册某些信号的侦听器。

代码示例

代码示例来源:origin: crashub/crash

  1. public String getProperty(String key)
  2. {
  3. return env.getEnv().get(key);
  4. }
  5. }

代码示例来源:origin: crashub/crash

  1. public SSHContext(Environment env) {
  2. if (env == null) {
  3. throw new NullPointerException("No null env");
  4. }
  5. //
  6. Integer verase = env.getPtyModes().get(PtyMode.VERASE);
  7. String LC_CTYPE = env.getEnv().get("LC_CTYPE");
  8. Charset encoding;
  9. if (LC_CTYPE != null) {
  10. encoding = parseEncoding(LC_CTYPE);
  11. } else {
  12. encoding = null;
  13. }
  14. //
  15. this.env = env;
  16. this.verase = verase != null ? verase : -1;
  17. this.encoding = encoding;
  18. }

代码示例来源:origin: apache/karaf

  1. public SshTerminal(Environment environment, InputStream input, OutputStream output, String encoding) throws IOException {
  2. super("Karaf SSH terminal",
  3. environment.getEnv().get(Environment.ENV_TERM),
  4. input,
  5. output,
  6. Charset.forName(encoding));
  7. this.environment = environment;
  8. this.environment.addSignalListener(this::handleSignal);
  9. for (Map.Entry<PtyMode, Integer> e : environment.getPtyModes().entrySet()) {
  10. switch (e.getKey()) {
  11. case VINTR:
  12. int w = Integer.valueOf(this.environment.getEnv().get(Environment.ENV_COLUMNS));
  13. int h = Integer.valueOf(this.environment.getEnv().get(Environment.ENV_LINES));
  14. setSize(new Size(w, h));

代码示例来源:origin: io.termd/termd-core

  1. @Override
  2. public void start(final Environment env) throws IOException {
  3. String lcctype = env.getEnv().get("LC_CTYPE");
  4. if (lcctype != null) {
  5. charset = parseCharset(lcctype);
  6. }
  7. if (charset == null) {
  8. charset = defaultCharset;
  9. }
  10. env.addSignalListener(signal -> updateSize(env), EnumSet.of(org.apache.sshd.server.Signal.WINCH));
  11. updateSize(env);
  12. // Event handling
  13. int vintr = getControlChar(env, PtyMode.VINTR, 3);
  14. int vsusp = getControlChar(env, PtyMode.VSUSP, 26);
  15. int veof = getControlChar(env, PtyMode.VEOF, 4);
  16. //
  17. eventDecoder = new TtyEventDecoder(vintr, vsusp, veof);
  18. decoder = new BinaryDecoder(512, charset, eventDecoder);
  19. stdout = new TtyOutputMode(new BinaryEncoder(charset, out));
  20. term = env.getEnv().get("TERM");
  21. conn = new Connection();
  22. //
  23. session.setDataReceiver(this);
  24. handler.accept(conn);
  25. }

代码示例来源:origin: termd/termd

  1. private int getControlChar(Environment env, PtyMode key, int def) {
  2. Integer controlChar = env.getPtyModes().get(key);
  3. return controlChar != null ? controlChar : def;
  4. }

代码示例来源:origin: org.apache.karaf.shell/org.apache.karaf.shell.ssh

  1. public SshTerminal(Environment environment, InputStream input, OutputStream output) throws IOException {
  2. super("Karaf SSH terminal",
  3. environment.getEnv().get(Environment.ENV_TERM),
  4. input,
  5. output,
  6. StandardCharsets.UTF_8);
  7. this.environment = environment;
  8. this.environment.addSignalListener(this::handleSignal);
  9. for (Map.Entry<PtyMode, Integer> e : environment.getPtyModes().entrySet()) {
  10. switch (e.getKey()) {
  11. case VINTR:
  12. int w = Integer.valueOf(this.environment.getEnv().get(Environment.ENV_COLUMNS));
  13. int h = Integer.valueOf(this.environment.getEnv().get(Environment.ENV_LINES));
  14. setSize(new Size(w, h));

代码示例来源:origin: termd/termd

  1. @Override
  2. public void start(final Environment env) throws IOException {
  3. String lcctype = env.getEnv().get("LC_CTYPE");
  4. if (lcctype != null) {
  5. charset = parseCharset(lcctype);
  6. }
  7. if (charset == null) {
  8. charset = defaultCharset;
  9. }
  10. env.addSignalListener(signal -> updateSize(env), EnumSet.of(org.apache.sshd.server.Signal.WINCH));
  11. updateSize(env);
  12. // Event handling
  13. int vintr = getControlChar(env, PtyMode.VINTR, 3);
  14. int vsusp = getControlChar(env, PtyMode.VSUSP, 26);
  15. int veof = getControlChar(env, PtyMode.VEOF, 4);
  16. //
  17. eventDecoder = new TtyEventDecoder(vintr, vsusp, veof);
  18. decoder = new BinaryDecoder(512, charset, eventDecoder);
  19. stdout = new TtyOutputMode(new BinaryEncoder(charset, out));
  20. term = env.getEnv().get("TERM");
  21. conn = new Connection();
  22. //
  23. session.setDataReceiver(this);
  24. handler.accept(conn);
  25. }

代码示例来源:origin: io.termd/termd-core

  1. private int getControlChar(Environment env, PtyMode key, int def) {
  2. Integer controlChar = env.getPtyModes().get(key);
  3. return controlChar != null ? controlChar : def;
  4. }

代码示例来源:origin: crashub/crash

  1. public int getWidth() {
  2. String s = env.getEnv().get(Environment.ENV_COLUMNS);
  3. int width = -1;
  4. if (s != null) {
  5. try {
  6. width = Integer.parseInt(s);
  7. }
  8. catch (NumberFormatException e) {
  9. log.log(Level.WARNING, "Could not parse ssh term width " + s);
  10. }
  11. }
  12. return width;
  13. }

代码示例来源:origin: org.jline/jline

  1. Terminal terminal = TerminalBuilder.builder()
  2. .name("JLine SSH")
  3. .type(env.getEnv().get("TERM"))
  4. .system(false)
  5. .streams(in, out)
  6. .build();
  7. terminal.setSize(new Size(Integer.parseInt(env.getEnv().get("COLUMNS")),
  8. Integer.parseInt(env.getEnv().get("LINES"))));
  9. Attributes attr = terminal.getAttributes();
  10. for (Map.Entry<PtyMode, Integer> e : env.getPtyModes().entrySet()) {
  11. switch (e.getKey()) {
  12. case VINTR:
  13. env.addSignalListener(signals -> {
  14. terminal.setSize(new Size(Integer.parseInt(env.getEnv().get("COLUMNS")),
  15. Integer.parseInt(env.getEnv().get("LINES"))));
  16. terminal.raise(Terminal.Signal.WINCH);
  17. }, Signal.WINCH);
  18. shell.accept(new Ssh.ShellParams(env.getEnv(), terminal, this::destroy));
  19. } catch (Throwable t) {
  20. t.printStackTrace();

代码示例来源:origin: org.crashub/crash.connectors.ssh

  1. public SSHContext(Environment env) {
  2. if (env == null) {
  3. throw new NullPointerException("No null env");
  4. }
  5. //
  6. Integer verase = env.getPtyModes().get(PtyMode.VERASE);
  7. String LC_CTYPE = env.getEnv().get("LC_CTYPE");
  8. Charset encoding;
  9. if (LC_CTYPE != null) {
  10. encoding = parseEncoding(LC_CTYPE);
  11. } else {
  12. encoding = null;
  13. }
  14. //
  15. this.env = env;
  16. this.verase = verase != null ? verase : -1;
  17. this.encoding = encoding;
  18. }

代码示例来源:origin: org.crsh/crsh.shell.ssh

  1. public SSHContext(Environment env) {
  2. if (env == null) {
  3. throw new NullPointerException("No null env");
  4. }
  5. //
  6. Integer verase = env.getPtyModes().get(PtyMode.VERASE);
  7. //
  8. this.env = env;
  9. this.verase = verase != null ? verase : -1;
  10. }

代码示例来源:origin: crashub/crash

  1. public int getHeight() {
  2. String s = env.getEnv().get(Environment.ENV_LINES);
  3. int height = -1;
  4. if (s != null) {
  5. try {
  6. height = Integer.parseInt(s);
  7. }
  8. catch (NumberFormatException e) {
  9. log.log(Level.WARNING, "Could not parse ssh term height " + s);
  10. }
  11. }
  12. return height;
  13. }

代码示例来源:origin: org.jline/jline-remote-ssh

  1. Terminal terminal = TerminalBuilder.builder()
  2. .name("JLine SSH")
  3. .type(env.getEnv().get("TERM"))
  4. .system(false)
  5. .streams(in, out)
  6. .build();
  7. terminal.setSize(new Size(Integer.parseInt(env.getEnv().get("COLUMNS")),
  8. Integer.parseInt(env.getEnv().get("LINES"))));
  9. Attributes attr = terminal.getAttributes();
  10. for (Map.Entry<PtyMode, Integer> e : env.getPtyModes().entrySet()) {
  11. switch (e.getKey()) {
  12. case VINTR:
  13. env.addSignalListener(signals -> {
  14. terminal.setSize(new Size(Integer.parseInt(env.getEnv().get("COLUMNS")),
  15. Integer.parseInt(env.getEnv().get("LINES"))));
  16. terminal.raise(Terminal.Signal.WINCH);
  17. }, Signal.WINCH);
  18. shell.accept(new Ssh.ShellParams(env.getEnv(), terminal, this::destroy));
  19. } catch (Throwable t) {
  20. t.printStackTrace();

代码示例来源:origin: com.github.corda.crash/crash.connectors.ssh

  1. public SSHContext(Environment env) {
  2. if (env == null) {
  3. throw new NullPointerException("No null env");
  4. }
  5. //
  6. Integer verase = env.getPtyModes().get(PtyMode.VERASE);
  7. String LC_CTYPE = env.getEnv().get("LC_CTYPE");
  8. Charset encoding;
  9. if (LC_CTYPE != null) {
  10. encoding = parseEncoding(LC_CTYPE);
  11. } else {
  12. encoding = null;
  13. }
  14. //
  15. this.env = env;
  16. this.verase = verase != null ? verase : -1;
  17. this.encoding = encoding;
  18. }

代码示例来源:origin: org.apache.sshd/sshd-core

  1. byte[] modes = buffer.getBytes();
  2. Environment environment = getEnvironment();
  3. Map<PtyMode, Integer> ptyModes = environment.getPtyModes();

代码示例来源:origin: com.github.corda.crash/crash.connectors.ssh

  1. public String getProperty(String key)
  2. {
  3. return env.getEnv().get(key);
  4. }
  5. }

代码示例来源:origin: com.github.fonimus/spring-boot-ssh-shell-starter

  1. public void run() {
  2. LOGGER.debug("{}: run", session.toString());
  3. Size size = new Size(Integer.parseInt(sshEnv.getEnv().get("COLUMNS")), Integer.parseInt(sshEnv.getEnv().get("LINES")));
  4. try (ByteArrayOutputStream baos = new ByteArrayOutputStream();
  5. PrintStream ps = new PrintStream(baos, true, StandardCharsets.UTF_8.name());
  6. Terminal terminal = TerminalBuilder.builder().system(false).size(size).type(sshEnv.getEnv().get("TERM")).streams(is, os).build()) {
  7. fill(attr, sshEnv.getPtyModes());
  8. terminal.setAttributes(attr);
  9. sshEnv.addSignalListener(signal -> {
  10. terminal.setSize(new Size(
  11. Integer.parseInt(sshEnv.getEnv().get("COLUMNS")),
  12. Integer.parseInt(sshEnv.getEnv().get("LINES"))));
  13. terminal.raise(Terminal.Signal.WINCH);
  14. }, Signal.WINCH);

代码示例来源:origin: org.apache.sshd/sshd-core

  1. @Override
  2. public void start(Environment env) throws IOException {
  3. Map<String, String> varsMap = resolveShellEnvironment(env.getEnv());
  4. for (int i = 0; i < command.size(); i++) {
  5. String cmd = command.get(i);
  6. Map<PtyMode, ?> modes = resolveShellTtyOptions(env.getPtyModes());
  7. out = new TtyFilterInputStream(process.getInputStream(), modes);
  8. err = new TtyFilterInputStream(process.getErrorStream(), modes);

代码示例来源:origin: org.apache.sshd/sshd-osgi

  1. byte[] modes = buffer.getBytes();
  2. Environment environment = getEnvironment();
  3. Map<PtyMode, Integer> ptyModes = environment.getPtyModes();

相关文章