小编ogr*_*yjd的帖子

Spring Boot REST服务异常处理

我正在尝试建立一个大型REST服务服务器.我们使用的是Spring Boot 1.2.1 Spring 4.1.5和Java 8.我们的控制器正在实现@RestController和标准的@RequestMapping注释.

我的问题是Spring Boot为控制器异常设置了默认重定向/error.来自文档:

Spring Boot默认提供/错误映射,以合理的方式处理所有错误,并在servlet容器中注册为"全局"错误页面.

从使用Node.js编写REST应用程序多年来,对我来说,这对任何事情都是明智的.服务端点生成的任何异常都应在响应中返回.我无法理解为什么你会发送重定向到最有可能是Angular或JQuery SPA消费者的消费者,该消费者只是寻找答案而不能或不会对重定向采取任何行动.

我想要做的是设置一个全局错误处理程序,可以接受任何异常 - 有意地从请求映射方法抛出或由Spring自动生成(如果没有找到请求路径签名的处理程序方法,则为404),并返回标准格式化错误响应(400,500,503,404)到客户端没有任何MVC重定向.具体来说,我们将采用错误,使用UUID将其记录到NoSQL,然后使用JSON正文中日志条目的UUID向客户端返回正确的HTTP错误代码.

对于如何做到这一点,文档一直含糊不清.在我看来,你必须创建自己的ErrorController实现或以某种方式使用ControllerAdvice,但我看到的所有示例仍然包括将响应转发到某种错误映射,这没有帮助.其他示例表明,您必须列出要处理的每个Exception类型,而不是仅列出"Throwable"并获取所有内容.

任何人都可以告诉我我错过了什么,或指出我如何做到这一点的正确方向,而不建议Node.js更容易处理的链?

java rest spring exception-handling spring-boot

156
推荐指数
7
解决办法
21万
查看次数

疯狂需要启用跨站点脚本

是的,我需要启用跨站点脚本以对我正在处理的应用程序进行内部测试。我会使用 Chrome 的 disable-xss-auditor 或 disable-web-security 开关,但看起来它们不再包含在 chrome 版本中:

http://src.chromium.org/svn/trunk/src/chrome/common/chrome_switches.cc

我基本上想要实现的是让一个在 Apache 服务的页面上本地运行的 javascript 应用程序(也在本地运行)被允许从我们网络上另一台服务器上运行的资源运行脚本。

无法为 Firefox、Chrome 或我最不喜欢的 IE 启用 xss,有没有办法运行某种代理进程来修改标题以允许 xss 发生?任何使用 Apache mod rewrite 的快速方法或一些这样的方法来做到这一点?

同样,这仅用于测试。在生产中,所有这些脚本都在同一台服务器上运行,因此甚至不需要对它们进行签名,但是在开发和测试过程中,仅在您关心的应用程序部分而不是您没有的部分上工作要容易得多运行需要完整应用程序服务器设置的其余部分。

javascript apache xss firefox google-chrome

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

Maven校验和设置?

谷歌已经让我失望了,即使在这里我也找不到答案 - 让我真的在这里发布我的第一个问题.

我正在尝试获取命令"mvn install"以自动生成工件的校验和,并将校验和与工件一起放在存储库中.我读过的所有内容似乎表明它应该在没有我介入的情况下发生,但我得到的只是工件,源zip,pom和本地元数据xml.

该项目的pom看起来像这样:

<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>my.pkg.name</groupId>
  <artifactId>Logging</artifactId>
  <version>1.2.0-SNAPSHOT</version>
  <build>
    <sourceDirectory>src/java</sourceDirectory>
    <testSourceDirectory>test/java</testSourceDirectory>
    <resources>
      <resource>
        <directory>src/conf</directory>
      </resource>
    </resources>
    <testResources>
      <testResource>
        <directory>test/conf</directory>
      </testResource>
    </testResources>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.0.2</version>
            <configuration>
              <source>1.5</source>
              <target>1.5</target>
              <debug>true</debug>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>findbugs-maven-plugin</artifactId>
            <version>2.3</version>
        </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-checkstyle-plugin</artifactId>
            <version>2.4</version>
            <configuration>
              <configLocation>checkstyle.xml</configLocation>
            </configuration>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <executions>
                <execution>
                    <id>attach-sources</id>
                    <goals>
                        <goal>jar</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
  </build>
  <dependencies>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring</artifactId>
      <version>2.5.6.SEC02</version>
    </dependency>
    <dependency>
     <groupId>junit</groupId>
     <artifactId>junit</artifactId>
     <version>3.8.2</version>
     <type>jar</type>
     <scope>compile</scope>
    </dependency>
  </dependencies> …
Run Code Online (Sandbox Code Playgroud)

maven-2 checksum pom.xml

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