Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我如何使用/“图像”;具有安全性的Spring引导Rest控制器中的路径?_Java_Spring_Rest - Fatal编程技术网

Java 我如何使用/“图像”;具有安全性的Spring引导Rest控制器中的路径?

Java 我如何使用/“图像”;具有安全性的Spring引导Rest控制器中的路径?,java,spring,rest,Java,Spring,Rest,我有一个SpringBootREST服务(SpringBootStarter父级:1.3.2),它使用RestController定义的方法公开一些端点。我也在使用Spring安全性。在我尝试定义映射到“/images”的控制器方法之前,一切都正常。当我尝试访问此api路径时,我得到以下错误。通过调试,我可以看到正在映射我的控制器处理程序,但未调用预授权筛选器(其他映射会正确调用它)。我已经设置了以下属性,但没有更改。如何修复此问题,以便使用“/图像” 错误: "exception":

我有一个SpringBootREST服务(SpringBootStarter父级:1.3.2),它使用RestController定义的方法公开一些端点。我也在使用Spring安全性。在我尝试定义映射到“/images”的控制器方法之前,一切都正常。当我尝试访问此api路径时,我得到以下错误。通过调试,我可以看到正在映射我的控制器处理程序,但未调用预授权筛选器(其他映射会正确调用它)。我已经设置了以下属性,但没有更改。如何修复此问题,以便使用“/图像”

错误:

    "exception": "org.springframework.security.authentication.AuthenticationCredentialsNotFoundException",
    "message": "An Authentication object was not found in the SecurityContext",
代码:

如果我将映射更改为以下内容,那么它就可以正常工作

  @RequestMapping(value = { "/image/{imageId}" }, method = RequestMethod.GET)
  @ResponseBody
  public Image getImage(@PathVariable UUID imageId) {
    return imageDataService.getImage(imageId);
  }

我认为静态资源的配置有一个默认条目,告诉Spring security忽略preauth过滤器的“/images”路径。我正在四处调试,试图找出可能被覆盖的位置。

SpringBoot默认情况下使用一些路径

私有静态最终字符串[]类路径\资源\位置={ “类路径:/META-INF/resources/”,“类路径:/resources/”, “类路径:/static/”,“类路径:/public/”}

其中一个路径是/images

在使用SpringSecurity时,您还有以下限制

web应用程序中现成的基本功能包括:

具有内存存储和单个用户的AuthenticationManager bean (有关用户的属性,请参见SecurityProperties.User)。忽略 (不安全)公共静态资源位置的路径(/css/, /js/、/images/、/webjars/和**/favicon.ico)。HTTP基本 所有其他端点的安全性。安全事件发布到 Spring的ApplicationEventPublisher(成功和失败 身份验证和访问被拒绝)


Spring Security提供的常见低级功能(HST、XSS、CSRF、缓存)在默认情况下处于启用状态。

SpringBoot在默认情况下使用一些路径

私有静态最终字符串[]类路径\资源\位置={ “类路径:/META-INF/resources/”,“类路径:/resources/”, “类路径:/static/”,“类路径:/public/”}

其中一个路径是/images

在使用SpringSecurity时,您还有以下限制

web应用程序中现成的基本功能包括:

具有内存存储和单个用户的AuthenticationManager bean (有关用户的属性,请参见SecurityProperties.User)。忽略 (不安全)公共静态资源位置的路径(/css/, /js/、/images/、/webjars/和**/favicon.ico)。HTTP基本 所有其他端点的安全性。安全事件发布到 Spring的ApplicationEventPublisher(成功和失败 身份验证和访问被拒绝)


Spring Security提供的常见低级功能(HST、XSS、CSRF、缓存)在默认情况下处于启用状态。

您需要确保每个请求都具有安全性。这可以使用以下
安全配置来完成:

@Configuration
@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests().anyRequest().authenticated();
    }
}

您需要确保每个请求都具有安全性。这可以使用以下
安全配置来完成:

@Configuration
@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests().anyRequest().authenticated();
    }
}

您能告诉我们您使用的是哪个
@RequestMapping
(类级和/或方法级)吗?您尝试访问的URL是哪个?根据Spring安全配置,是什么使
/images
路径不同于API的任何其他路径?请参阅我的代码部分。我正在尝试使用@RequestMapping(value={/images/{imageId}},method=RequestMethod.GET)。您能告诉我们您(在类级别和/或方法级别)正在使用哪个
@RequestMapping
?您尝试访问的URL是哪个?根据Spring安全配置,是什么使
/images
路径不同于API的任何其他路径?请参阅我的代码部分。我正在尝试使用@RequestMapping(value={“/images/{imageId}},method=RequestMethod.GET)。我看到了这些文档,但很难相信在创建rest服务时没有一种方法可以轻松地将其关闭。您可以覆盖配置查看我看到的这些文档的这个项目,但很难相信在创建rest服务时没有一种方法可以轻松地将其关闭。您可以覆盖此项目中的配置
@Configuration
@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests().anyRequest().authenticated();
    }
}