对于Spring,传递给@Query注释的字符串的参数是否被视为纯数据,例如,如果您使用的是PreparedStatement类或任何旨在阻止SQL注入的方法?
final String MY_QUERY = "SELECT * FROM some_table WHERE some_column = ?1";
@Query(value=MY_QUERY, nativeQuery = true)
List<SomeEntity> findResults(String potentiallyMaliciousUserInput);
Run Code Online (Sandbox Code Playgroud)
结论:上面的代码是否容易受到SQL注入的影响?
不应该使会话无效导致request.getSession(false)返回null吗?在我的注销servlet中,我打电话
session.invalidate();
Run Code Online (Sandbox Code Playgroud)
在我的登录状态过滤器中,我打电话
request.getSession(false);
Run Code Online (Sandbox Code Playgroud)
对getSession(false)的调用永远不会返回null,但与返回的会话对象关联的所有属性都为null.我目前通过搜索空属性来检测用户是否已注销,但这似乎不正确.
我找不到任何关于如何通过CloudFormation将WAF与ALB相关联的示例或文档.据说可能通过这个新闻公告https://aws.amazon.com/about-aws/whats-new/2017/05/cloudformation-support-for-aws-waf-on-alb/,但没有任何东西我发现这表明如何.使用CloudFront而不是ALB已有详细记录,但我没有找到关于使用ALB(通过CloudFormation)的单个示例.
更新:我不需要一个完整的示例来为我完成整个设置,但至少需要一个片段来指出WAF如何知道与ALB关联,反之亦然.链接是什么缺失.
amazon-web-services aws-cloudformation amazon-waf amazon-alb
问题:
我从不指定提交按钮,因为我使用ajax提交表单,但有些表单具有自动提交功能,无论如何.
背景:
在我的整个应用程序中,我有一个实例,当点击输入按钮将自动提交表单和其他什么都不做的实例.例如; 有时我需要捕获"输入"按钮以获得自动提交,但有时候它似乎只是发生在它自己的上面而我没有找到模式.除了动态创建的表单似乎具有自动提交功能,但静态表单没有?是否有其他人有类似的问题.
例:
我的所有表单都删除了提交按钮,并且我没有指定目标或操作元素,如下所示.所有表单都通过AJAX传输数据.
<form id="ajaxForm">
<input>
</form>
<button>ButtonOutSideForm</button>
Run Code Online (Sandbox Code Playgroud)
不寻找防止自动提交的方法
我已经知道了"onsubmit = return false",e.preventDefault.我不是在寻找一种禁用自动提交的方法.我的问题是为什么它的存在似乎是武断的.谢谢.
我认为AWS ElasticSearch服务带有自动snaphshots /备份.这就是我在文档中找到的内容.这表明他们每天发生一次,并存储在S3上,但我没有看到任何我的S3存储桶的任何备份.如何访问自动快照?
它可能没关系,但我使用以下模板创建我的elasticsearch域明确表示我想要自动备份.
CloudFormation
"SnapshotOptions": {
"AutomatedSnapshotStartHour": "0"
}
Run Code Online (Sandbox Code Playgroud) 问题
我正在尝试运行一个简单的 spring 启动测试,但我收到的错误表明它在运行时不能 MockMvc。文档表明我使用了正确的注释,并且我使用 start.spring.io 创建了我的 pom.xml。不知道为什么它有问题。
错误:
No qualifying bean of type 'org.springframework.test.web.servlet.MockMvc'
Run Code Online (Sandbox Code Playgroud)
测试代码
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
public class MyWebApplicationTests {
@Autowired
MockMvc mockMvc;
@Test
public void Can_Do_Something() throws Exception {
mockMvc.perform(get("/hello-world")).andDo(print()).andExpect(status().isOk())
.andExpect(content().string(containsString("Hello World")));
}
}
Run Code Online (Sandbox Code Playgroud)
文档:
我使用这个文档作为参考 - > https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-testing.html#boot-features-testing-spring-boot-应用程序测试与模拟环境
POM文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mywebapp</groupId>
<artifactId>webapp</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>my-webapp</name>
<description>Backend application</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.0.M1</version>
<relativePath/> <!-- …Run Code Online (Sandbox Code Playgroud) spring spring-mvc spring-boot spring-boot-test spring-webflux
题
HashMap方法putIfAbsent如何以比调用containsKey(x)之前更快的方式有条件地执行put?
例如,如果您没有使用putIfAbsent,则可以使用:
if(!map.containsKey(x)){
map.put(x,someValue);
}
Run Code Online (Sandbox Code Playgroud)
我以前认为putIfAbsent是调用containsKey然后放在HashMap上的方便方法.但在运行基准测试后,putIfAbsent明显快于使用containsKey后跟Put.我查看了java.util源代码,试着看看这是怎么回事,但是对我来说有点太神秘了.有没有人知道putIfAbsent似乎在更好的时间复杂度下工作?这是我的假设基于运行一些代码测试,其中我的代码在使用putIfAbsent时运行速度提高了50%.它似乎避免调用get()但如何?
例
if(!map.containsKey(x)){
map.put(x,someValue);
}
Run Code Online (Sandbox Code Playgroud)
VS
map.putIfAbsent(x,somevalue)
Run Code Online (Sandbox Code Playgroud)
Hashmap.putIfAbsent的Java源代码
@Override
public V putIfAbsent(K key, V value) {
return putVal(hash(key), key, value, true, true);
}
final V putVal(int hash, K key, V value, boolean onlyIfAbsent,
boolean evict) {
Node<K,V>[] tab; Node<K,V> p; int n, i;
if ((tab = table) == null || (n = tab.length) == 0)
n = (tab = resize()).length;
if ((p = tab[i = (n - 1) & hash]) == null)
tab[i] = …Run Code Online (Sandbox Code Playgroud) 尝试在现有数据库中创建新节点时,我收到以下异常:
org.neo4j.kernal.StoreLockException.
下面的代码snippit是导致异常的实际行.下面我已经附上了一些更详细的信息和完整的堆栈跟踪.
如果我创建一个新文件夹并将其用作DB_PATH,那么我的代码在第一次运行时工作正常.在第二次运行时,它将失败并出现相同的异常.似乎有些事情阻止了获取锁定.
我试图在每个文件中设置读/写权限DB_PATH.没运气.是否有一个配置文件中的设置必须禁用锁?
代码抛出异常
graphDB = new GraphDatabaseFactory().newEmbeddedDatabase( DB_PATH );
Run Code Online (Sandbox Code Playgroud)
更多细节(第6行)
private static GraphDatabaseService graphDB = null;
public static final String DB_PATH = "/Users/NtroduceMe/Downloads/neo4j-community-2.0.0-M03/data/ntroduceme";
private static Index<Node> userNodeIndex;
private static Index<Node> rememberMeNodeIndex;
static {
graphDB = new GraphDatabaseFactory().newEmbeddedDatabase( DB_PATH );
registerShutdownHook(graphDB);
userNodeIndex = graphDB.index().forNodes("profile_id");
rememberMeNodeIndex = graphDB.index().forNodes("profile_id");
}
Run Code Online (Sandbox Code Playgroud)
堆栈跟踪
Jun 19, 2013 12:12:50 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [ProfileController] in context with path [] threw exception [Servlet execution threw an exception] …Run Code Online (Sandbox Code Playgroud) 题
有没有办法运行单个UIViewController,以便我可以看到结果视图而不必运行整个应用程序?
背景
我正在使用不使用许多xib文件的代码库; 视图是在很多地方以编程方式生成的.要查看我的修改,我必须运行应用程序并逐步执行它以达到我刚刚更改的所需视图,这可能有点麻烦.有时我会将它硬编码到应用程序流程的某个早期点,这样我就可以看到它运行时的样子.有更简单的方法吗?
问题
我们使用java WAR文件并将配置文件保存在s3存储桶中.我们的环境:DEV,QA,Stage和PROD都有自己的配置文件和s3桶.如果我添加一个新字段,例如"Polling_RATE = 5000",则必须手动将其添加到每个env,因为这些配置文件还存储密码,因此它们不能绑定到应用程序或保存在Github中.并非每个工程师都可以访问每个环境,因此您必须记住在prod部署日期之前通知上级工程师(DEVOPS),以便为应用程序添加新字段.这是一个非常混乱的过程.
题
是否有用于处理此问题的实用程序或架构设计模式?你如何"版本控制"你无法存储在github中的敏感配置字段?
java continuous-integration amazon-s3 configuration-management devops
java ×4
java-ee ×2
spring ×2
amazon-alb ×1
amazon-s3 ×1
amazon-waf ×1
collections ×1
devops ×1
hashmap ×1
html ×1
ios ×1
javascript ×1
neo4j ×1
objective-c ×1
servlets ×1
spring-boot ×1
spring-mvc ×1
tomcat ×1
xcode ×1