小编Usm*_*kil的帖子

Spring SQL Injection中的@Query注释是否安全?

对于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注入的影响?

java spring sql-injection spring-annotations

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

请求调用session.invalidate()后,request.getSession(false)不返回null

不应该使会话无效导致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.我目前通过搜索空属性来检测用户是否已注销,但这似乎不正确.

java servlets session-state java-ee

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

如何通过CloudFormation将AWS WAF添加到ALB

我找不到任何关于如何通过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

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

为什么有些表单在单击"输入"按钮时自动提交而其他表单没有?

问题:

我从不指定提交按钮,因为我使用ajax提交表单,但有些表单具有自动提交功能,无论如何.

背景:

在我的整个应用程序中,我有一个实例,当点击输入按钮将自动提交表单和其他什么都不做的实例.例如; 有时我需要捕获"输入"按钮以获得自动提交,但有时候它似乎只是发生在它自己的上面而我没有找到模式.除了动态创建的表单似乎具有自动提交功能,但静态表单没有?是否有其他人有类似的问题.

例:

我的所有表单都删除了提交按钮,并且我没有指定目标或操作元素,如下所示.所有表单都通过AJAX传输数据.

<form id="ajaxForm">
<input>
</form>
<button>ButtonOutSideForm</button>
Run Code Online (Sandbox Code Playgroud)

不寻找防止自动提交的方法

我已经知道了"onsubmit = return false",e.preventDefault.我不是在寻找一种禁用自动提交的方法.我的问题是为什么它的存在似乎是武断的.谢谢.

html javascript

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

如何访问AWS ElasticSearch Service自动快照/备份?

我认为AWS ElasticSearch服务带有自动snaphshots /备份.这就是我在文档中找到的内容.这表明他们每天发生一次,并存储在S3上,但我没有看到任何我的S3存储桶的任何备份.如何访问自动快照?

它可能没关系,但我使用以下模板创建我的elasticsearch域明确表示我想要自动备份.

CloudFormation

"SnapshotOptions": {
    "AutomatedSnapshotStartHour": "0"
}
Run Code Online (Sandbox Code Playgroud)

amazon-web-services elasticsearch aws-elasticsearch

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

Spring Boot WebFlux 测试未找到 MockMvc

问题

我正在尝试运行一个简单的 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

8
推荐指数
2
解决办法
6599
查看次数

是什么让Hashmap.putIfAbsent比containsKey更快,然后是put?

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)

java collections hashmap

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

获取锁定时出错(org.neo4j.kernal.StoreLockException)

尝试在现有数据库中创建新节点时,我收到以下异常:

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)

tomcat java-ee neo4j

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

在xcode中运行各个视图/控制器

有没有办法运行单个UIViewController,以便我可以看到结果视图而不必运行整个应用程序?

背景

我正在使用不使用许多xib文件的代码库; 视图是在很多地方以编程方式生成的.要查看我的修改,我必须运行应用程序并逐步执行它以达到我刚刚更改的所需视图,这可能有点麻烦.有时我会将它硬编码到应用程序流程的某个早期点,这样我就可以看到它运行时的样子.有更简单的方法吗?

xcode objective-c ios

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

在多个环境之间管理配置文件的方法

问题

我们使用java WAR文件并将配置文件保存在s3存储桶中.我们的环境:DEV,QA,Stage和PROD都有自己的配置文件和s3桶.如果我添加一个新字段,例如"Polling_RATE = 5000",则必须手动将其添加到每个env,因为这些配置文件还存储密码,因此它们不能绑定到应用程序或保存在Github中.并非每个工程师都可以访问每个环境,因此您必须记住在prod部署日期之前通知上级工程师(DEVOPS),以便为应用程序添加新字段.这是一个非常混乱的过程.

是否有用于处理此问题的实用程序或架构设计模式?你如何"版本控制"你无法存储在github中的敏感配置字段?

java continuous-integration amazon-s3 configuration-management devops

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