小编Abh*_*hek的帖子

使用按位xor进行Java字符串比较

我在产品代码中看到了以下代码段.它使用按位XOR进行字符串比较.这比String.equals(Object o)方法好吗?作者试图在这里实现什么?

private static boolean compareSecure(String a, String b)
  {
    if ((a == null) || (b == null)) {
      return (a == null) && (b == null);
    }
    int len = a.length();
    if (len != b.length()) {
      return false;
    }
    if (len == 0) {
      return true;
    }
    int bits = 0;
    for (int i = 0; i < len; i++) {
      bits |= a.charAt(i) ^ b.charAt(i);
    }
    return bits == 0;
  }
Run Code Online (Sandbox Code Playgroud)

对于上下文,等同的字符串是身份验证令牌.

java bitwise-operators bitwise-xor

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

nginx重写正则表达式最小,最大重复

我正在NGINX中使用此重写。
rewrite ^/test[^a-zA-Z0-9]{2}/?$ https://www.google.com permanent; // doesn't work

服务器无法启动,因为我min {2}在正则表达式中添加了重复项。当我像这样删除服务器时,服务器启动:
rewrite ^/test[^a-zA-Z0-9]/?$ https://www.google.com permanent; // this works

我已经尝试了两种{min,max}参数。使用min重复时出现的错误如下。
directive "rewrite" is not terminated by ";"

此重写的上下文是server

有人可以告诉我我想念什么吗?是否需要安装一些模块才能正常工作?
我的产品NGINX版本是1.4,我在本地使用1.10尝试过。

regex nginx url-rewriting

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

仅安装一次节点,而不是每次使用 Maven 构建

我需要一位帮助。

我正在使用 grunt 来编译 CSS/JS

我有一个问题,我的节点包是在每次构建时创建的,并且在 Jenkins 中占用了大量空间。我正在使用 Maven 前端插件来实现相同的功能。

我希望节点包最初只创建一次,而不是在每个 Maven 构建中再次创建。

 <id>grunt</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>com.github.eirslett</groupId>
                        <artifactId>frontend-maven-plugin</artifactId>
                        <version>0.0.26</version>
                        <!-- optional -->
                        <configuration>
                            <workingDirectory>DIR
                            </workingDirectory>
                            <nodeVersion>v4.2.1</nodeVersion>
                            <npmVersion>3.5.1</npmVersion>
                            <installDirectory>node</installDirectory>
                        </configuration>
                      <executions>
                            <execution>
                                <id>node and npm install</id>
                                <goals>
                                    <goal>install-node-and-npm</goal>
                                </goals>
                                <configuration>
                                    <arguments>install</arguments>
                                    <installDirectory>node</installDirectory>
                                </configuration>
                            </execution>
                            <execution>
                                <id>npm install</id>
                                <goals>
                                    <goal>npm</goal>
                                </goals>
                                <configuration>
                                    <arguments>install</arguments>
                                    <installDirectory>node</installDirectory>
                                </configuration>
                            </execution>
                            <execution>
                                <id>grunt build</id>
                                <goals>
                                    <goal>grunt</goal>
                                </goals>
                                <configuration>
                                    <arguments>build</arguments>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
Run Code Online (Sandbox Code Playgroud)

我们正在使用 maven -P grunt 进行构建。它在每个 Maven 构建中创建和安装节点。

为了在全球范围内拥有节点,我正在尝试 maven -P grunt …

maven gruntjs

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