小编MaV*_*ldo的帖子

如何使用Spring MVC处理HTTP OPTIONS?

我想使用我的控制器使用Spring MVC拦截OPTIONS请求,但它被DispatcherServlet捕获.我该如何管理?

java http spring-mvc http-options-method

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

您在哪里将密钥存储在Java Web应用程序中?

密码学是一种广泛采用的技术,以确保机密性.不考虑实施缺陷,它有一个关键点:密钥存储.如果密钥被盗,整个系统将受到损害.

编辑:

让我指出上下文,使问题不那么广泛:

  1. 这里是一个java Web应用程序
  2. 更具体地说,它是使用spring框架版本3
  3. spring security 3.1用于保护应用程序
  4. 一个mysql5数据库可用
  5. 应用服务器是tomcat6或tomcat7
  6. 服务器机器不在我的控制之下

也许问题可以集中在这种情况上,但正如所指出的,秘密密钥存储的问题是横向于所采用的技术.然而,一些图书馆可能提供特殊功能,可以某种方式促进工作.一个明确的观点是,必须在安全性和实际需要之间找到权衡.为了完成分析,很明显所需的安全级别取决于要保护的信息的价值.将我们的思想转变为强制执行超级安全策略(需要付出很多努力)来保持客户的鞋子尺寸是毫无意义的.

在这里,我必须保护一个电子邮件密码(将存储在数据库中).我认为这些信息平均至关重要.

我在这里寻找的是合理努力的最佳解决方案.

所以问题非常清楚:你会在哪里存储这些信息?

  1. 你把它存放在数据库中?所以它应该加密,这需要另一个密钥(你在哪里存储第二个密钥?)
  2. 你把它存放在.war包装里面吗?如何防止未经授权的访问来源?
  3. 你采取不同的策略吗?

我们将非常感谢您的战略动机.谢谢

java encryption web-applications

17
推荐指数
2
解决办法
9602
查看次数

当一个石英作业触发时,它是一个新的作业类实例吗?

我对Quartz很新,我对工作生命周期有些怀疑.

假设我有一个单独的工作配置来做一些事情.

这项工作开始并结束其工作.当它再次触发它是同一个实例(可能设置为睡眠并由调度程序唤醒)或者它是一个新的作业实例(一旦作业结束它就被杀死,当再次满足触发条件时,创建一个新的作业实例) ?

我问这样的问题,因为当我调试我的应用程序(带有石英支持的Spring 3 mvc)时,我看到作业的新实例,并且每次触发作业时都会打开SimpleThreadPool $ WorkerThreadRun()的新线程,以便SimpleThreadPool $ WorkerThreadRun()线程堆积,永不终止.

我只是想知道这种行为是否正常还是我必须填补记忆;-)

谁能给我一些解释?提前致谢.

java quartz-scheduler job-scheduling spring-3

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

在Spring Web应用程序中从类路径加载(xml)文件

我想从我的类路径中获取一个xml文件来解组它并将其用于测试目的.我的问题是将它作为InputStream.我写了这些行,但我总是得到一个null结果.

InputStream is = getClass().getResourceAsStream("WebContent/WEB-INF/classes/testing/"+ COMPLETE_DOCUMENT + ".xml");
Run Code Online (Sandbox Code Playgroud)

当然,你在方法参数中看到的路径是我文件中的路径.我尝试了几种组合:

WebContent/WEB-INF/classes/testing/
classpath:testing/
classpath*:testing/
Run Code Online (Sandbox Code Playgroud)

但我总是得到InputStream = null.

我甚至试图切换到

 ClassLoader.getResourceAsStream(...)
Run Code Online (Sandbox Code Playgroud)

但没有任何反应.我想资源的路径是错误的,但我无法弄清楚在哪里.从我的servlet.xml中,我使用类路径中的一些资源来配置PropertyPlaceholderConfigurer或Jaxb2Marshaller,只需使用语法

"classpath:folder/file.xsd"
Run Code Online (Sandbox Code Playgroud)

它完美无缺.我想要加载我的xml的文件夹是上面示例中的一个兄弟.我错过了什么?

编辑: 我尝试遵循Spring ClassPathResource帮助程序类方法,我得到一个奇怪的行为:正如我之前所说,我已经有一些资源从类路径加载启动时的一些spring bean.如果我在dardo建议的代码中使用这些资源的路径如下:

ClassPathResource cpr = new ClassPathResource("xmlschemas/lrinode.xsd");
InputStream is = cpr.getInputStream();
Run Code Online (Sandbox Code Playgroud)

我还是得到了FileNotFound Exception!当然"xmlschemas/lrinode.xsd"是我成功启动时加载的xsd.即使我从应用程序的根目录开始使用资源的完整路径,它也不起作用.

我开始认为我错过了一些微不足道的东西.

java spring classpath

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

未在Eclipse Tomcat实例上部署Maven依赖项

我正在使用Spring Tool Suite 3.1,我在将一个Web应用程序部署到tomcat时遇到了一些问题.

当我点击"在服务器上运行"并且服务器启动它会引发着名的:

java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener

所以我检查/wtpwebapps目录以找到项目已部署,但在lib文件夹中只有几个库存在.我完全错过了他们选择背后的理由.当然,与春天相关的图书馆并不存在.有人可以帮忙吗?

这是我的org.eclipse.wst.common.commonent文件,也许它很有用:

<?xml version="1.0" encoding="UTF-8"?>
<project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="Checkup">
    <wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
    <wb-resource deploy-path="/" source-path="/WebContent" tag="defaultRootSource"/>
    <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
    <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
    <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/test/java"/>
    <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/test/resources"/>
    <property name="context-root" value="Checkup"/>
    <property name="java-output-path" value="/Checkup/build/classes"/>
</wb-module>
Run Code Online (Sandbox Code Playgroud)

编辑:

你可以看到嵌入了STS安装的maven插件列表(没有自定义)

STS maven插件

eclipse spring tomcat maven

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

如何检查实现内容相等的对象中的引用相等?

...换句话说:假设我有 2 个字符串声明如下:

String one = new String("yay!");
String two = new String("yay!");
Run Code Online (Sandbox Code Playgroud)

这两个字符串是两个不同的对象,但是如果我运行

if(one.equals(two))
   System.out.println("equals() returns true.");
Run Code Online (Sandbox Code Playgroud)

我得到“equals() 返回 true”。这是因为 String 类覆盖了 equals() 方法以实现内容级别相等。但是,我需要访问一个引用级别的相等性(就像在 Object 中实现的那个)来区分对象一和对象二。我怎样才能做到这一点?

我试过这个:

one.getClass().getSuperclass().equals();
Run Code Online (Sandbox Code Playgroud)

尝试调用 String 一的 Object equals() 方法,但没有奏效。

有什么建议吗?

java methods object

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

Spring 3验证:在errorArgs中使用messages.property条目?

我正在寻找的东西很容易解释:我有一个必须支持意大利语和英语的表格.假设我有一个名字输入文本字段.表格标签将是:

  • EN:"名字"
  • 对于IT:"Nome"

我想要的是这样的验证错误消息

  • 对于EN:" 需要名字字段"
  • 对于IT:"坎普广场诺姆 èrichiesto"

请注意我在错误消息中引用了字段名称.

messages_en.properties有线:

errors.empty.field = the {0} field is required
registration.form.firstname = First Name
Run Code Online (Sandbox Code Playgroud)

当然还有messages_it.properties线条:

errors.empty.field = il campo {0} è richiesto
registration.form.firstname = Nome
Run Code Online (Sandbox Code Playgroud)

现在,在我的自定义验证器类中

ValidationUtils.rejectIfEmpty(errors, "firstname", "errors.empty.field", new Object[]{"registration.form.firstname"}, "the First Name is required");
Run Code Online (Sandbox Code Playgroud)

这不能正常工作.输出是"registration.form.username"字符串.我想在运行时使用适当的语言环境注入字段名称.有办法吗?

java validation spring locale localization

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

一种标准符号,用于定位结构化数据格式(XML,JSON)中的内容?

问题在于:我处于Web环境中,我的数据以某种结构化格式表示,比如XML或JSON.我想在这些表示中定位元素.

这是一个例子:

动物园的XML表示:

<?xml version="1.0" encoding="UTF-8" ?>
<zoo>
    <dog>Joe</dog>
    <cat>Alfred</cat>
    <mouse>Ricky</mouse>
</zoo>
Run Code Online (Sandbox Code Playgroud)

同一动物园的JSON表示:

{
  "zoo": {
    "dog": "Joe",
    "cat": "Alfred",
    "mouse": "Ricky"
  }
}
Run Code Online (Sandbox Code Playgroud)

说,我想打狗的名字.

我看到有几种技术可以完成任务,但它们与内容类型绑定在一起.XML有XPath或Xpointer,JSON有JSONPath等等.

问题是:如果XML和JSON是表示结构化信息的两种方式(几乎相同),您是否知道一些高级的,与实现无关的符号,它不受特定表示的约束?

约束:

请考虑我不能使用普通的URL机制.我的意思是,我不能做类似的事情http://authority/.../zoo/dog.

这里的资源zoo,我需要遍历其内容(将其视为内容).

只是为了澄清一点,类似的东西http://authority/.../zoo#dog可以做到这一点,因为它将资源名称(前面#的内容)与内容名称(后面的内容)分开,#但我不确定是否以这种方式使用它可以考虑标准与否.此外,#策略要求使用锚点注释资源,这对我的情况来说是不可取的.

xml xpath json pointers data-structures

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