首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring disable @EnableResourceServer

Spring disable @EnableResourceServer
EN

Stack Overflow用户
提问于 2017-08-02 23:48:15
回答 3查看 2.3K关注 0票数 7

我有资源服务器,当它启动时-它正在发送请求到身份验证服务器("http://localhost:xxxx/auth/oauth/token_key"),当所有的启动和运行时,它是正常的。

但是当我测试我的服务时,我根本不需要这个。我如何禁用资源服务器,或者我应该模拟一些东西,这样它就不会依赖于auth服务器(用于将来的控制器安全测试)?

我的spring boot main:

代码语言:javascript
复制
@SpringBootApplication
@EnableEurekaClient
@EnableResourceServer
public class CalendarApplication {

    public static void main(String[] args) throws Exception {
        SpringApplication.run(CalendarApplication.class, args);
    }
}

application.yml

代码语言:javascript
复制
security:
  basic:
    enabled: false
  oauth2:
    resource:
      jwt:
        keyUri: http://localhost:xxxx/auth/oauth/token_key

测试类注释:

代码语言:javascript
复制
@RunWith(SpringJUnit4ClassRunner.class)
@WebMvcTest(value = TypeController.class, secure = false)
public class TypeControllerTest {}
EN

回答 3

Stack Overflow用户

发布于 2018-03-26 15:41:38

为什么不使用单独的配置文件(@Profile("test"))为您的@AuthenticationServer创建单独的@Configuration?这样,您就不需要禁用安全性,并且可以拥有内存中的令牌。我就是这么处理的。您还可以为您的测试完全禁用Spring Security。看看this question吧。

票数 4
EN

Stack Overflow用户

发布于 2018-03-26 19:52:55

您可以使用@WithMockUser进行测试

Testing Method Security

票数 2
EN

Stack Overflow用户

发布于 2017-08-02 23:52:02

我解决这个问题的方法是在用于测试的数据库中创建一个令牌,并确保对API的请求在向被测资源发出请求之前使用了该令牌。

您确实希望您的令牌在那里,因为它可以作为一种合理的安全性检查。如果您希望在没有特定令牌的情况下无法访问此资源,那么这将是一个有用的测试。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45465445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档