小编tyr*_*yro的帖子

哪个版本的spring boot包含@WebIntegrationTest,它在添加时会在Intellij中显示红色

我在Gradle文件中添加了Spring Boot测试依赖项

testCompile group: 'org.springframework.boot', name: 'spring-boot-starter-test'
ext['mockito.version'] = '2.7.5'
Run Code Online (Sandbox Code Playgroud)

仍然无法使用@WebIntegrationTest,如果我尝试添加Intellij,它会显示红色.我应该在我的应用程序中拥有什么才能使用它来测试REST API @WebIntegrationTest

我能够用不同的方法测试它,但却无法理解它失败的原因

testing spring mockito dependency-management spring-boot

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

如何在 Spring Boot 2 中处理 security.enable-csrf?

我正在将应用程序从 Spring Boot 1.5 迁移到 2.0.5。我有一个security.enable-csrf=true在 1.5 版本中设置的属性,但在 2.0 版本的 Spring Boot 中不可用。

我阅读了文档,据说在 Spring Boot 2.0 中:

在 Java 配置中默认启用 CSRF 保护。

所以默认情况下它是启用的,但也创建了一个类,它扩展了WebSecurityConfigurerAdapter这意味着 Spring Boot 默认安全配置已被关闭。这是否也意味着security.enable-csrf现在被禁用了?

如果是,我该如何启用它,就像我在 1.5 版本的应用程序中使用它一样。

我没有得到任何文件明确确认如何security.enable-csrf在 Spring Boot 2.0 中处理属性以及在声明WebSecurityConfigurerAdapter.

有人知道吗?此外,我错过阅读有关此内容的任何文档链接都会有很大帮助。

spring-security spring-boot

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

如何在Spring Boot中访问src/main/resources /文件夹中的资源文件

我正在尝试访问src/main/resources/XYZ/view文件夹中的xsd,其中我创建了XYZ/view文件夹,文件夹中有我需要的abc.xsd进行xml验证.

当我每次将结果作为null时尝试访问xsd时,

我试过了,

1)

@Value(value = "classpath:XYZ/view/abc.xsd")
private static Resource dataStructureXSD;
InputStream is = dataStructureXSD.getInputStream();
Source schemaSource = new StreamSource(is);
Schema schema = factory.newSchema(schemaSource);
Run Code Online (Sandbox Code Playgroud)

2)

Resource resource = new ClassPathResource("abc.xsd");
File file = resource.getFile();
Run Code Online (Sandbox Code Playgroud)

还有很多我为获取资源或类加载器等而创建的路径.

最后我得到了xsd,

File file = new File(new ClassPathResource("/ src/main/resources/XYZ/view/abc.xsd").getPath()); Schema schema = factory.newSchema(file);

它正在发挥作用,我想知道为什么其他两条路会出错或为什么它对我不起作用而对别人好.:(

还是有其他好方法可以做到这一点,我很遗憾

java jaxb spring-boot

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

Java 8 SSLContext.getInstance("TLSv1.2") 是什么意思?

我正在尝试为某个端点 URL 调用 REST API,它对于 java.net 的 URL 运行良好,并且在执行相同操作后。但在某些机器上,它因某些 SSLException 而失败,因此代码被修改如下:

HttpsURLConnection connection = (HttpsURLConnection) new URL( url ).openConnection()

SSLContext sc = SSLContext.getInstance("TLSv1.2")
sc.init(null, null, new SecureRandom())
connection.setSSLSocketFactory(sc.getSocketFactory())
connection.setRequestProperty("charset", "utf-8")

InputStream input = connection.getInputStream()
InputStreamReader reader = new InputStreamReader(input, "utf-8")
BufferedReader buffer = new BufferedReader(reader)

buffer.lines().collect(Collectors.joining("\n"))
Run Code Online (Sandbox Code Playgroud)

现在它再次工作正常,如果我没记错的话,它是为了安全通信,但是为什么在 Linux 环境上出现 SSLException 而不是在 Windows 上,SSLContext.getInstance("TLSv1.2")这是否适用于所有环境,为什么不是 TLSV1.1 所有环境都有 1.2或默认最新版本,如何确保它可以在所有环境上运行?

java ssl ssl-certificate

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

64位随机数值十六进制给出16个字符有时15个字符为什么?

我在应用程序中有一个场景,我需要生成一个ID,它应该是十六进制表示的随机64位值,

到目前为止我做了什么,

 Random randomLong = new Random();
 long m = randomLong.nextLong();
 String uid = Long.toHexString(m);
Run Code Online (Sandbox Code Playgroud)

o/p可能像43c45c243f90326a82cf8e3863102f3a等.但不是每次它给16个字符,但15个字符而不是我得到原因:(

获取包含16个字符的十六进制表示中的随机64位值的最有效方法是什么

java hex long-integer

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

java.net.MalformedURLException:使用 xsd 模式验证 xml 字符串时没有协议

我正在尝试使用 xsd 模式验证 xml,但在验证时它会抛出,

java.net.MalformedURLException:无协议:

到目前为止我所做的是,

        public boolean ValidateXML(String  xmlContent) throws  Exception {
        try
        {
            SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
            Schema schema = factory.newSchema(getClass().getClassLoader().getResource("ABC/XYX/PQR.xsd"));
            Validator validator = schema.newValidator();
            validator.validate(new StreamSource(xmlContent));
}...
Run Code Online (Sandbox Code Playgroud)

出了什么问题,validator.validate这一步抛出异常,我需要在这里提供编码字符串吗?

如果我用文件来做,我指的是文件中的 xmlContent,

validator.validate(new StreamSource(new File(filePath)));
Run Code Online (Sandbox Code Playgroud)

然后就可以正常工作了。我不想要来自文件的 xml 内容,而是来自字符串对象

java xml xsd

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

找不到 id 的快照:gradle

我在构建项目时遇到找不到 id 快照的错误。

在运行命令时,./gradlew build --info我收到信息说 PROJECT_FOLDER/build/libs/projectName.jar 已被删除。

我试图寻找相同的,但它在所述位置生成罐子。

它运行良好,直到昨天突然开始面临这个问题。

现在,我不知道我应该如何继续寻找根本原因。

任何建议将不胜感激。

我正在使用 gradle 4.2.1 来构建项目

gradle gradlew

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

固定数组?/ StringBuilder?/ String?如果要追加84个字符串,这是创建字符串的最佳方法

我事先知道,将有84个字符串将被逗号分隔符追加,然后创建一个字符串,

哪种方式更好的是固定数组,字符串或字符串生成器?

java arrays string stringbuilder

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