小编fas*_*ser的帖子

正则表达式用于跳过指定的URL扩展名

我有一个链接.例如:http://my.domain/url.jsp

我的目标是创建模式,不允许任何带扩展名的网址如下: .ex1, .ex2, .ex3

我正在寻找很长一段时间并找到一些方法,但这与我想要的完全相反.

([^\s]+(\.(?i)(ex1|ex2|ex3))$) 
Run Code Online (Sandbox Code Playgroud)

regex

5
推荐指数
0
解决办法
74
查看次数

与ActiveDirectoryLdapAuthenticationProvider的集成测试

上一次我向我们的项目中添加了另一个身份验证提供程序,以便通过Windows Active Directory服务器对用户进行身份验证:

<security:authentication-manager id="authenticationManager" erase-credentials="true">
        <security:authentication-provider ref="ldapActiveDirectoryAuthProvider" />
        <security:authentication-provider ref="authenticationProvider1"/>
        <security:authentication-provider ref="authenticationProvider2"/>
    </security:authentication-manager>

     <bean id="customLdapUserDetailsMapper" class="security.authentication.customLdapUserDetailsMapper">
     </bean>

     <bean id="ldapActiveDirectoryAuthProvider" class="org.springframework.security.ldap.authentication.ad.ActiveDirectoryLdapAuthenticationProvider">
       <constructor-arg value="my.domain"/>
       <constructor-arg value="ldap://my.custom.host:389" />
       <property name="useAuthenticationRequestCredentials" value="true" />
       <property name="convertSubErrorCodesToExceptions" value="true" />
       <property name="userDetailsContextMapper" ref="customLdapUserDetailsMapper" />
     </bean>
Run Code Online (Sandbox Code Playgroud)

除了与身份验证流程一起使用的现有集成测试以外,几乎一切正常。即,每个测试都尝试在ActiveDirectoryLdapAuthenticationProvider.bindAsUser然后失败时尝试连接到服务器,因为my.custom.host无法用于此类型的测试。

我已经开始谷歌搜索,以便为这种类型的测试找到一些模拟,但是不幸的是,我只找到了这篇有关spring-security和ldap的集成测试,其中Luke Taylor建议使用现有的集成测试作为指南。我已经研究了它,但其中不包含针对此类提供程序的任何测试。

我是新手,很高兴知道以下几点:

  1. new ApacheDSContainer("dc=springframework,dc=org", "classpath:test-server.ldif");以LDAP集成测试中提到的方法以任何方式重用是否正确(我不确定它是否适合我,因为我没有在应用程序上下文中创建ldap ebbedded ldap服务器,也未指定任何方法。提及配置中的ldif文件)。
  2. 可以哪种方式以适当方式模拟以下提供程序?

java spring integration-testing ldap active-directory

5
推荐指数
0
解决办法
525
查看次数

通过UUID生成密码重置令牌

我正在寻找一种机制来生成用于重置用户密码的随机唯一字母数字键。

我朝这个方向进行了很多眼光检查,但看起来这不是显而易见的事情。

我已经尝试过类似的方法:

new String(encodeBase64URLSafe(UUID.randomUUID()));
Run Code Online (Sandbox Code Playgroud)

但是,在阅读以下文章之后:UUID.randomUUID()是否适合用作一次性密码?看起来这种方式并不完全正确。

如果您回答以下问题,将不胜感激:

  1. 哪种安全方法可以使用UUID生成此类令牌?
  2. 我们是否需要将UUID字符串转换为base64才能获得安全的URL,还是足以从生成的字符串中删除破折号?
  3. 在这种用途中使用此链接的机制是否正确?如何生成随机的字母数字字符串?,为什么呢?

java uuid base64

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

覆盖 pom.xml 中指定的 Nexus 存储库的 URL

我有一个 Web 项目,在 jenkins 上成功构建后,我将其部署到 Nexus 存储库。目前在项目中,pom.xml我有以下配置,其中 Nexus 存储库的主机和端口是硬编码的:

<profiles>
        <profile>
            <id>deploy-snapshot</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <distributionManagement>
                <snapshotRepository>
                    <id>snapshots</id>
                    <name>Repository for snapshots</name>
                    <url>http://ip1:port1/nexus/content/repositories/snapshots</url>
                </snapshotRepository>
            </distributionManagement>
        </profile>
</profiles>
Run Code Online (Sandbox Code Playgroud)

我的目标是覆盖 jenkins 中的 nexus url,而不对 pom.xml 进行任何更改,因为目前 pom.xml 中的配置用于另一个无法重新配置的环境。

考虑到将来我将为负责部署 npm 包的其他工作做类似的事情,最好知道可以在 jenkins 上以哪种方式完成。

我研究了以下 jenkins 插件https://wiki.jenkins.io/display/JENKINS/Nexus+Artifact+Uploader,但不确定这是否是真正的插件,也不确定该插件是否适合 zip 存档npm 构建。

nexus maven jenkins

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

如何传递更多参数以弹簧验证方法

我有org.springframework.validation.Validator的扩展名。

public class MyValidator implements Validator {

    @Override
        public void validate(Object target, Errors errors) {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

我的目标是将多个目标传递给方法。

我不喜欢重载validate方法的想法,因为它闻起来像是不好的代码: validate(Object target1, Object target1, Errors errors)或创建具有所需目标的地图。

最好了解有关此案例的更好方法。

java validation spring

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

生成固定长度的字母/数字字符串

我的目标是生成具有固定长度的迭代字母/数字字符串,例如:

aaaaaa
aaaaab
aaaaac
...
aaaaa9
aaaaba
...
999999
Run Code Online (Sandbox Code Playgroud)

它可以使用嵌套for循环轻松实现,如下面的代码:

   public static void main(String[] strings) {
        Object[] array = new Object[]{'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x',
                'y', 'z', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
        List<String> list = Lists.newArrayList();
        int a, b, c, d, e, f;
        for (a = 0; a < 35; a++) {
            for (b = 0; …
Run Code Online (Sandbox Code Playgroud)

java

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