小编Eri*_*rik的帖子

如何用jgit做相当于"git diff --name-status"的操作?

我想获取修订版XXXXXX和HEAD之间已更改/添加/删除文件的列表.这是我到目前为止:

String oldHash = "a97e5553e37a25bd1a3c99eab303145baed08dbd";
Git git = Git.open(new File("/tmp/jgit"));
Repository repository = git.getRepository();
ObjectId old = repository.resolve(oldHash);
ObjectId head = repository.resolve("HEAD");

// how do i get the trees from the obj. id?
List<<DiffEntry> diffs = git.diff().setNewTree(null).setOldTree(null).call();

for(DiffEntry diff : diffs) {
    // do stuff
}
Run Code Online (Sandbox Code Playgroud)

这是正确的方法,如果是这样,我如何获得git.diff()所需的树?

java jgit

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

是否可以将(加密强)会话cookie用作CSRF令牌?

阅读OWASP CSRF预防备忘单,提出防止这类攻击的方法之一是同步器令牌模式.

如果会话令牌在加密方面很强,那么它是否可以像下面的伪代码中所描述的那样加倍作为csrf令牌?

客户:

<script>
dom.replace(placeholder, getCookie("session-cookie"))
</script>

<form>
<input type="hidden" name="csrf-cookie" value="placeholder-value"/>
<input type="text" />
</form>
Run Code Online (Sandbox Code Playgroud)

服务器:

if(request.getParameter("csrf-cookie") != user.getSessionCookie())
    print "get out you evil hacker"
Run Code Online (Sandbox Code Playgroud)

在页面加载时使用javascript设置cookie,以防止用户意外泄露会话cookie,例如,如果他们将页面副本通过电子邮件发送给朋友.

javascript security csrf web

6
推荐指数
2
解决办法
1129
查看次数

编辑上一个命令输出的第n行的快速方法

我经常发现自己正在做这样的工作流程:

$ find . |grep somefile
./tmp/somefile.xml
./test/another-somefile.txt
Run Code Online (Sandbox Code Playgroud)

(评论输出)

$ vim ./tmp/somefile.xml
Run Code Online (Sandbox Code Playgroud)

现在,如果有一些方便的方法来使用find命令的输出并将其提供给vim,那将是很好的.

我提出的最好的是:

$ nth () { sed -n $1p; }
$ find . |grep somefile
./tmp/somefile.xml
./test/another-somefile.txt
Run Code Online (Sandbox Code Playgroud)

(评论输出)

$ vim `!!|nth 2`
Run Code Online (Sandbox Code Playgroud)

我想知道是否有其他的,可能更漂亮的方法来完成同样的事情?

为了澄清,我想要一种方便的方法从先前运行的命令中获取第n行,以便快速打开该文件以便在vim中进行编辑,而无需使用鼠标或制表符剪切和粘贴文件名 - 完成我在文件路径中的操作.

unix vim bash shell

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

标签 统计

bash ×1

csrf ×1

java ×1

javascript ×1

jgit ×1

security ×1

shell ×1

unix ×1

vim ×1

web ×1