小编gih*_*han的帖子

如何在Apache Mina sshd-core版本0.14.0中覆盖getVirtualUserDir()

我使用Apache Mina sshd-core版本0.10.0.由于文件上传的一些问题我不得不将版本更改为0.14.0.在那里我无法覆盖getVirtualUserDir()方法.以下是我的示例代码,

sshd.setFileSystemFactory(new NativeFileSystemFactory() {
        @Override
        public FileSystemView createFileSystemView(final Session session) {
            return new NativeFileSystemView(session.getUsername(), false) {
                @Override
                public String getVirtualUserDir() {

                    return "C:/root";
                }
            };
        };
    });
Run Code Online (Sandbox Code Playgroud)

我想知道如何在Apache Mina sshd-core版本0.14.0中克服这个问题.谢谢.

java sftp apache-mina

3
推荐指数
1
解决办法
2073
查看次数

如何以编程方式禁用 Logback 输出到控制台但附加到文件

我以编程方式设置了 Logback 文件附加器,并将日志级别设置为ALL. 原因是设置日志级别,ALL我想记录文件包含所有日志详细信息,例如(INFO,DEBUG,WARN and etc...)但我想避免来自控制台的这些详细信息。如果有人知道,请让我知道如何以编程方式禁用 Logback 输出到控制台。

记录器代码片段

参考

private static Logger createLoggerFor(String string, String file) {
          LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
          PatternLayoutEncoder ple = new PatternLayoutEncoder();

          ple.setPattern("%date %level [%thread] %logger{10} [%file:%line] %msg%n");
          ple.setContext(lc);
          ple.start();
          FileAppender<ILoggingEvent> fileAppender = new FileAppender<ILoggingEvent>();
          fileAppender.setFile(file);
          fileAppender.setEncoder(ple);
          fileAppender.setContext(lc);
          fileAppender.start();

          Logger logger = (Logger) LoggerFactory.getLogger(string);
          logger.addAppender(fileAppender);
          logger.setLevel(Level.ALL);
          logger.setAdditive(false); /* set to true if root should log too */

          return logger;
    }
Run Code Online (Sandbox Code Playgroud)

注意:当我设置日志级别WARNDEBUG详细信息时,日志文件以及控制台输出中不会显示。但我想将所有详细信息记录到日志文件中,包括INFO.

java logging logback

3
推荐指数
1
解决办法
4644
查看次数

如何使用 Java 中的 Jersey 安全注释绕过 servlet 过滤器中的路径

我已经使用 Jersey 实现了 REST 服务。为了提供更多的安全性,我在 REST 方法中添加了 jersey 安全注释(@PermitAll@DenyAll)。

下面是我的示例 REST 服务:

@GET
@Path("/getall")
@Produces(MediaType.APPLICATION_JSON)
@PermitAll
public String getChartSupportedData(@QueryParam("items") int result) {
    // my code goes here
}
Run Code Online (Sandbox Code Playgroud)

但问题是以前我使用javax.servlet.Filter过滤器来验证 URI。

网页.xml:

@GET
@Path("/getall")
@Produces(MediaType.APPLICATION_JSON)
@PermitAll
public String getChartSupportedData(@QueryParam("items") int result) {
    // my code goes here
}
Run Code Online (Sandbox Code Playgroud)

根据访问一些 REST 服务,HttpServletRequest应该包含一个有效的令牌(由应用程序生成)。

某些 REST 端点不需要令牌来访问服务。在这种情况下,我必须在过滤器实现中绕过它:

private static String[] bypassPaths = { "/data/getall" };
Run Code Online (Sandbox Code Playgroud)

所以我的要求是这样的。

如果我们将某个 REST 端点声明@PermitAll为该路径,则不应在过滤器中将其声明为旁路路径,以便任何人都可以在没有有效令牌的情况下访问它。

但问题是当请求进入服务器时过滤器总是过滤,如果它不在旁路数组中,即使我声明为@PermitAll.

我想知道是否可以在同一个 Web …

java rest jersey

2
推荐指数
1
解决办法
4239
查看次数

如何使用隐藏REST API获取分支头提交

HEAD从存储分支获取提交时遇到问题。我可以使用以下REST调用获取分支提交。

/rest/api/1.0/projects/{projectKey}/repos/{repositorySlug}/commits?until={branch Name}
Run Code Online (Sandbox Code Playgroud)

我也可以使用 /rest/api/1.0/projects/{projectKey}/repos/{repositorySlug}/commits/HEAD

像明智的那样,我想知道我如何使用Stash REST API获得分支HEAD提交。

git bitbucket-server

2
推荐指数
1
解决办法
2511
查看次数

如何在Joda日期时间中将日期时间字符串输入转换为格式化日期时间字符串

我写了一个函数将日期时间字符串转换为格式化的日期时间字符串并返回结果.

输入日期时间字符串= 2015-12-16 12:27:07.0 输出日期时间字符串=02/20/2016 12:32 PM

public static String convertDateToCustomFormat(String dateString) {
        DateFormat dbDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        DateFormat uiDateFormat = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss a");
        String date = null;
        try {
            date = uiDateFormat.format(dbDateFormat.parse(dateString));

        } catch (ParseException e) {

            e.printStackTrace();
        }

        return date;
    }
Run Code Online (Sandbox Code Playgroud)

上面的功能工作正常.但我用于java.text.SimpleDateFormat格式化字符串.我试图将相同的功能转换为joda.time.format.DateTimeFormat但我收到一条错误消息说

java.lang.IllegalArgumentException: Invalid format: "2015-12-16 12:27:07.0" is malformed at ".0"
Run Code Online (Sandbox Code Playgroud)

这是我使用joda日期时间的新功能

输入日期时间字符串= 2015-12-16 12:27:07.0 输出日期时间应该是这样 =02/20/2016 12:32 PM

public static String convertDateToCustomFormat(String dateString) {
        DateTimeFormatter dbDateFormat = DateTimeFormat
                .forPattern(("yyyy-MM-dd …
Run Code Online (Sandbox Code Playgroud)

java jodatime

1
推荐指数
1
解决办法
1742
查看次数

标签 统计

java ×4

apache-mina ×1

bitbucket-server ×1

git ×1

jersey ×1

jodatime ×1

logback ×1

logging ×1

rest ×1

sftp ×1