小编cem*_*ick的帖子

修复Internet Explorer中的JavaScript数组函数(indexOf,forEach等)

至于详细的其他地方,否则显然是众所周知的,IE浏览器(版本绝对7,并在某些情况下,版本8)不落实的关键功能,特别是Array(如forEach,indexOf等).

这里和那里有许多变通方法,但我想将一组适当的,规范的实现折叠到我们的网站中,而不是复制,粘贴或破解我们自己的实现.我找到了js-methods,看起来很有前景,但我想在这里发帖看看是否有更高度推荐的另一个库.一些杂项标准:

  • 对于浏览器已经实现的那些函数,库应该只是一个无操作(js-methods在这里看起来做得很好).
  • GPL,请尽管LGPL是可以接受的.

javascript internet-explorer cross-browser

137
推荐指数
3
解决办法
8万
查看次数

如何防止spring-security附加; jsessionid = XXX登录重定向?

当未经身份验证的客户端请求需要非匿名访问级别的URL时security-config.xml,spring security会将HTTP重定向发送到我们的登录页面(例如/login).没关系.

问题是,如果没有现有会话(由客户端请求中提供的cookie标识),spring-security会发出重定向,该重定向也指定客户端在URL中的新会话,例如/login;jsessionid=8o7pglapojus.

许多容器支持这个(显然在Tomcat中正常工作?),但现在看来,码头(这就是我们现在正在使用)不-重定向的URL来通过我们的网址路由器完全不变(包括jsessionid"参数"),并且命名会话不与/loginjetty/spring-security 的请求相关联(即,在对/login请求的响应的Set-Cookie头中提供了全新的会话ID ).

我们可以通过匹配/login.*我们的路由来解决这个问题,但我很好奇是否有任何方法可以防止在身份验证重定向中发出会话ID.

tomcat servlets jetty spring-security

31
推荐指数
2
解决办法
3万
查看次数

如何在Tomcat 6中合理配置安全策略

我正在使用Tomcat 6.0.24,为Ubuntu Karmic打包.Ubuntu的Tomcat软件包的默认安全策略非常严格,但看起来很简单.在/var/lib/tomcat6/conf/policy.d,有各种文件建立默认策略.

值得一提的是:

  • 我根本没有更改库存tomcat安装 - 没有新的jar进入其公共lib目录,没有server.xml更改等.将.war文件放在webapps目录中是唯一的部署操作.
  • 我正在部署的Web应用程序失败,在此默认策略下有数千个访问拒绝(由于-Djava.security.debug="access,stack,failure"系统属性而报告给日志).
  • 关闭安全管理器完全没有任何错误,并且正确的应用程序功能

我想要做的是在policy.d目录中添加特定于应用程序的安全策略文件,这似乎是推荐的做法.我添加了这个policy.d/100myapp.policy(作为一个起点 - 我希望最终将授予的权限减少到应用程序实际需要的内容):

grant codeBase "file:${catalina.base}/webapps/ROOT.war" {
  permission java.security.AllPermission;
};

grant codeBase "file:${catalina.base}/webapps/ROOT/-" {
  permission java.security.AllPermission;
};

grant codeBase "file:${catalina.base}/webapps/ROOT/WEB-INF/-" {
  permission java.security.AllPermission;
};

grant codeBase "file:${catalina.base}/webapps/ROOT/WEB-INF/lib/-" {
  permission java.security.AllPermission;
};

grant codeBase "file:${catalina.base}/webapps/ROOT/WEB-INF/classes/-" {
  permission java.security.AllPermission;
};
Run Code Online (Sandbox Code Playgroud)

请注意试图找到正确codeBase声明的颠簸.我认为这可能是我的根本问题.

无论如何,上面(实际上只有前两个赠款似乎有任何影响)几乎可行:成千上万的访问拒绝都消失了,而我只留下了一个.相关堆栈跟踪:

java.security.AccessControlException: access denied (java.io.FilePermission /var/lib/tomcat6/webapps/ROOT/WEB-INF/classes/com/foo/some-file-here.txt read)
  java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
  java.security.AccessController.checkPermission(AccessController.java:546)
  java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
  java.lang.SecurityManager.checkRead(SecurityManager.java:871)
  java.io.File.exists(File.java:731)
  org.apache.naming.resources.FileDirContext.file(FileDirContext.java:785)
  org.apache.naming.resources.FileDirContext.lookup(FileDirContext.java:206)
  org.apache.naming.resources.ProxyDirContext.lookup(ProxyDirContext.java:299)
  org.apache.catalina.loader.WebappClassLoader.findResourceInternal(WebappClassLoader.java:1937) …
Run Code Online (Sandbox Code Playgroud)

java ubuntu tomcat securitymanager tomcat6

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

如何根据优先级和资源分配强制Microsoft Project中的任务"计划"?

我需要做一些不太适合我们日常任务管理工具(FogBugz和白板)工作流程的高级项目规划,所以我想我会给MS Project一个旋转(它是免费的)通过MSDN).

不过,我打了一堵漂亮的墙.我所拥有的是120个任务,一组人(将它们称为"资源"对我来说非常苛刻,但我离题了),并对这些任务进行了粗略的优先排序.有些任务有一个人分配给他们,有些没有(因为我们不知道谁会做什么).

好到目前为止.问题是,除了那些相对罕见的任务链接的情况(大多数工作可以按任何顺序完成)之外,所有任务都安排在同时运行.我想做的是让Project根据以下内容找出一些调度方案:

  • 定义的任务
  • 他们的相对优先
  • 任何链接/依赖项,如果已定义
  • 我已经定义的人的可用性,同时尊重我已经做出的明确的"资源"任务

这可能吗?我已经摆弄了资源调配对话框并阅读了比我想承认的更多的MS Project文档,所以欢迎任何建议.

FWIW,我在搜索中注意到这个问题在Yahoo Answers ; 那里的人似乎跟在大致相同的事情之后,但我觉得这里的问题可能更有成效.

ms-project

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

如何使用Math.max等作为高阶函数

简而言之,这有效:

[1, 2, 3].reduce(function (a, b) { return Math.max(a, b); });
=> 3
Run Code Online (Sandbox Code Playgroud)

但这不是:

[1, 2, 3].reduce(Math.max);
=> NaN
Run Code Online (Sandbox Code Playgroud)

纯粹的困惑.

这是在Firefox 3.5.9中,我认为它是使用reduce,FWIW 的mozilla标准实现.

javascript functional-programming

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

学习与Overtone理论相关设施的音乐理论的最佳资源是什么?

我不是一个音乐家(见证我用吉他和钢琴大多不成功的插曲),但我发现自己能够通过Overtone产生合理愉悦的声音,并且得很开心.(正如Sam Aaron所说,这是将编程能力转化为音乐性的好方法,这似乎在某种程度上得到了证实.)

我的问题是,Overtone提供了各种与音乐理论相关的设备(例如音阶,节拍器等)overtone.music.*,我已经修改过,但根本就没有从根本上理解.我想知道是否有人可以推荐一个合理平易近人的音乐理论书籍/指南/资源,与Overtone提供的设施很好地融合?

clojure overtone

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

如何将Wiki从FogBugz 6导出到(差不多)任何其他wiki(最终目的地:Confluence)?

我们有一个FogBugz 6安装,有很多维基内容.我们正在转换使用Atlassian产品(JIRA和Confluence),因此我们希望将该wiki内容转换为Confluence.你会怎么做?

不幸的是,FogBugz似乎没有提供任何类型的wiki导出功能,Confluence也没有提供任何FogBugz wiki导入.

FogBugz确实有一个API,但它对访问wiki内容的细节有点了解.我们并不真正关心页面的过去修订(只是内容,链接和图像/附件),因此不清楚API是否比使用wget或其他东西抓取FB wiki并使用HTML和那里的图像/附件.

Confluence有一个功能齐全的内容导入实用程序,支持许多源wiki:

  • TWiki的
  • PmWiki的
  • DokuWiki的
  • Mediawiki的
  • MoinMoin的
  • JotSpot公司
  • Tikiwiki
  • 了JSPWiki
  • 的SharePoint
  • SWiki
  • Vqwiki
  • XWiki实现
  • TRAC

那里没有FogBugz选项,但是如果我们可以将FogBugz wiki内容导出到上面的一个wiki中,那么我们可能会从那里使用Confluence多维基因导入器.

或者,我们可以使用wget来抓取FogBugz wiki内容,然后找到一种方法将静态HTML +图像+附件放入Confluence或上面的其他wiki之一作为Confluence的垫脚石.

思考?

scripting fogbugz wiki export confluence

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

在删除maven-metadata-local.xml文件之前,Maven 3依赖项解析失败[maven-invoker-plugin related]

在我的一个Maven项目中,依赖项解析将成功一次,然后失败以便以后的构建尝试:

[WARNING] The POM for commons-logging:commons-logging:jar:1.1.1 is missing, no dependency information available
[WARNING] The POM for commons-httpclient:commons-httpclient:jar:3.1 is missing, no dependency information available
[WARNING] The POM for javax.mail:mail:jar:1.4.4 is missing, no dependency information available
Run Code Online (Sandbox Code Playgroud)

...等等,直到我删除maven-metadata-local.xml与失败的工件相对应的文件(例如~/.m2/repository/commons-logging/commons-logging/maven-metadata-local.xml).删除这些文件后,下一次mvn调用将正常进行; 元数据文件由该调用恢复(可能是检查我的上游存储库/镜像更新工件的过程的一部分),我再次提出上述错误,直到我再次删除元数据文件.

这会影响多个项目,但它似乎仅限于一组特定的依赖项.我想我可以去核并吹掉我当地的回购,但我想知道问题是什么.

思考?

更新:看起来它是生成这些文件的maven-invoker-plugin(这些构建用于通用集成测试)maven-metadata-local.xml.我没有使用此处所述的仅集成测试本地存储库,只是因为这样做会导致重新下载所有传递依赖项(除非您想维护特定于集成的settings.xml文件!!!).我已经以这种方式将invoker插件与各种其他项目一起使用,效果很好 - 当然在这样的过程中从未遇到过楔形本地存储库.

更新2确定,这是可重复的,即使在从一个完全新鲜的本地存储库开始之后也是如此.这是在OS X,Java 1.6.0_24和Maven 3.0.3; 注意,Maven的2.2.1不会出现此问题.

这是有问题的项目之一:翻译的1.3.0-compat分支.重现:

> mvn clean test
# no error -- can run this …
Run Code Online (Sandbox Code Playgroud)

integration-testing maven-3 maven

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

如何运行jetty:使用maven坐标定义的战争进行战争?

背景:我正在maven项目中设置功能测试模块.我们使用maven-jetty-plugin进行测试.

我已经设置了这里描述的jetty插件(与Failsafe插件很好地配合),但我想要做的是使用jetty(刚安装到其中)从我们的主Web模块部署war工件功能测试模块运行时的本地maven repo).

jetty插件的run-war目标有一个<webApp>元素,它采用字符串路径来部署战争.我更愿意使用我们的web模块定义的maven坐标来指定部署战争.有没有办法做到这一点?

可能的解决方法:

  1. "使用Maven更好地构建"的第4.13节描述了使用货物来部署使用maven坐标指定的战争,但鉴于我们正在使用码头,这是严重的过度杀伤.
  2. 更合理的IMO正在使用依赖:复制将刚构建和安装的war伪像复制到功能测试模块的目标目录中的固定路径,然后我可以在jetty插件的<webApp>配置元素中提供.

maven-2 jetty maven maven-jetty-plugin

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

JQuery Visual Diff插件

是否有任何人都知道的JQuery visual diff插件.你会在GitHub,BitBucket或任何标准的源代码控制网站上看到类似的东西吗?

我找到了这个https://github.com/cemerick/jsdifflib,它看起来还不错,但是想知道是否有更多类似的东西.

谢谢.

javascript jquery user-interface

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

Data.Vector的unsafeFreeze/unsafeThaw有多"不安全"?

对文件Data.Vector.unsafeFreeze说:

不安全[ly]将可变向量转换为不可变向量而不进行复制.在此操作之后可能不使用可变载体.

我想详细描述这里"不安全"的含义.在实验上,它似乎"仅"意味着对原始可变载体的进一步修改将导致返回的不可变向量unsafeFreeze不再是纯的:

$ import qualified Data.Vector as V
$ import qualified Data.Vector.Mutable as MV
$ import Control.Monad.ST
$ :{
$ |runST $ do
$ |        mv <- V.thaw $ V.fromList [0..10]
$ |        v <- V.unsafeFreeze mv
$ |        MV.write mv 0 (-1)
$ |        MV.write mv 1 (-2)
$ |        v' <- V.freeze mv
$ |        v'' <- V.unsafeFreeze mv
$ |        return (v, v', v'')
$ |:}
([-1,-2,2,3,4,5,6,7,8,9,10],[-1,-2,2,3,4,5,6,7,8,9,10],[-1,-2,2,3,4,5,6,7,8,9,10])
Run Code Online (Sandbox Code Playgroud)

我可以想象一个修改"不安全"冻结中使用的来源做各种粗糙的事情会导致更糟糕的行为,例如segfaulting.不幸的是,我很快就忘记了尝试阅读不安全操作的来源.

我可以依靠所说的杂质是这些操作"不安全"的唯一方式吗?

对于上下文:我需要在一个通常不可变的数据结构上实现各种修改算法,而不是在内部可变性范围内重用其面向公众的API会非常不方便(因为AFAICT没有办法一般地访问 …

haskell st-monad

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

每个用户的随机盐可以用迭代散列替换吗?

在构建我希望的是一个正确架构的身份验证机制的过程中,我遇到了很多指定的材料:

  1. 用户密码必须是盐渍的
  2. 使用的盐应足够随机并按用户生成
  3. ...因此,必须将盐与用户记录一起存储,以支持验证用户密码

我完全同意第一点和第二点,但似乎后者有一个简单的解决方法.而不是做相当于(伪代码):

salt = random();
hashedPassword = hash(salt . password);
storeUserRecord(username, hashedPassword, salt);
Run Code Online (Sandbox Code Playgroud)

为什么不使用用户名的哈希作为盐?这产生了一个分布均匀(大致)随机的盐的区域,并且每个单独的盐与盐功能所提供的一样复杂.更好的是,您不必将salt存储在数据库中 - 只需在身份验证时重新生成它.更多伪代码:

salt = hash(username);
hashedPassword = hash(salt . password);
storeUserRecord(username, hashedPassword);
Run Code Online (Sandbox Code Playgroud)

(当然,hash在上面的例子中应该是合理的,比如SHA-512,或者其他一些强哈希.)

这对我来说似乎是合理的,因为我知道加密的内容很少(但很少),但事实上这是对广泛推荐的练习的简化,这让我想知道是否有一些明显的原因让我误入歧途,我不知道.

编辑有些人似乎没有意识到问题是什么.我无法建议不使用盐.参考TheRook的编辑答案:我熟悉那些CWE中提到的参考文献.我的核心问题是:为什么hash(用户名)是可预测的盐?

编辑2感谢所有提供答案的人; biffabacon在他的第2段直接解决了我的核心问题(基本上,你可以做的任何事情,以最大限度地使用盐的域,因此生成的哈希密码是好的),但在这个问题的各种评论中有很多美味的信息.

security authentication encryption cryptography

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

typeof为`this`返回"object",在其他地方返回"number"

typeof当应用于不同上下文中的相同值时,求值为不同的字符串.例如,这是预期的:

> typeof 5
'number'
Run Code Online (Sandbox Code Playgroud)

...然而,typeof 5访问时通道this不一样:

> Number.prototype.foo = function () { return typeof this; };
[Function]
> (5).foo()
'object'
Run Code Online (Sandbox Code Playgroud)

只是另一个(in)健全性检查,真的,认真验证这this 一个数字:

> Number.prototype.foo = function () { return [this + 1, typeof this]; };
[Function]
> (5).foo()
[ 6, 'object' ]
Run Code Online (Sandbox Code Playgroud)

我已经通过了MDN文档和阅读的ECMAScript规范typeof,而且怎么也想不到,这是可以预料的,请不要介意正确的.有人有解释吗?

javascript

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