我有一个有效的spring-security
配置,它包装了基于jersey的RESTendpoint,并允许方法级访问。
包含快速重现问题所需的一切的示例项目:https://github.com/pulkitsinghal/dummy-rest-api
// Server-Side jersey resource
@GET
@Path("/protected/myendpoint/")
@PreAuthorize("hasRole('DUMMY')")
public String getMyEndpoint(){
return "blah";
}
但在为受保护的endpoint编写健全性测试时,我遇到了以下异常,这种异常只发生在单元测试中:
Caused by:
org.springframework.security.authentication.AuthenticationCredentialsNotFoundException:
An Authentication object was not found in the SecurityContext
以下是基于JerseyTest的单元测试类的外观:
@Test
public void testProtectedEndpoint() {
WebResource webResource = resource();
webResource.addFilter(new HTTPBasicAuthFilter("username", "password"));
String responseMsg = webResource
.path("protected/myendpoint/")
.get(String.class);
System.out.println(responseMsg);
}
在为受Spring Security保护的endpoint设置JerseyTest
时,还有其他人遇到过这个问题吗?对此我们能做些什么?
我远程看到了一些联系:Spring Test
理想情况下,我想要一个单独的容器,如GrizzlyWebTestContainerFactory
,作为通过默认maven生命周期运行测试时的测试Web服务器:mvn清洁测试
但是我想,如果没有正确的答案,那么作为一种解决方法,使用ExternalTestContainerFactory作为测试Web服务器将不得不:
$ mvn clean package -DskipTests && (nohup foreman start &)
$ mvn -Djersey.test.containerFactory=com.sun.jersey.test.framework.spi.container.external.ExternalTestContainerFactory \
-Djersey.test.port=5000 \
-Djersey.test.host=localhost \
test
注意:对于那些不熟悉Foreman start
的人,只需将其视为tomcat start
,用于本用例中的所有密集目的。
如果测试被破坏并且Spring security不会在外部tomcat上呕吐,这仍然会阻止签入来掌握,所以我想它会成功。总是去找到tomcat/java后台进程的pid
并在之后将其杀死以进行清理有点烦人。
JerseyTest默认在Grizzly上运行,并且您的restful Web服务在Tomcat上提供了Spring Security设置-作为示例。因此,请检查两个servlet服务器具有相同的设置。
本文向大家介绍extjs 安装与设置,包括了extjs 安装与设置的使用技巧和注意事项,需要的朋友参考一下 示例 ExtJS的典型用法是利用该框架来构建单页的丰富应用程序(RIA)。最简单的入门方法是使用Sencha Cmd,它是一个CLI构建工具,涵盖了部署生命周期中的大多数常规问题,主要包括: 包和依赖管理 代码编译/捆绑和最小化 管理针对不同目标和平台的构建策略 »下载Sencha Cmd
嗨,我已经在springboot中实现了Spring Security性。现在我希望登录到期时间为10分钟,以便到期后页面将重定向到页面`@Configuration@EnableWebSecurity公共类ApplicationSecurityConfiguration extends websecurityconfigureradicater{ } `
我的任务是为团队的代码设置集成测试。这些测试需要对Jersey 2.27中实现的RESTendpoint执行HTTPS请求。在寻找如何执行这种测试的过程中,我偶然发现了Baeldung的这篇文章,这篇文章向我指出了Jersey测试框架和他们为此目的实现的提供者容器。我选择了Jetty容器,因为我们的代码使用了一个“滚动您自己的”Jetty实例来完成这一切。我开始实施我们的测试,但在为提供rest请
问题内容: 有没有一种方法可以在没有用户/密码的情况下从命令行重设所有(或只是禁用安全性设置),因为我设法完全将自己锁定在外面? 问题答案: 最简单的解决方案是完全禁用安全-变化给在文件中。 然后只需重新启动詹金斯, 然后转到管理面板并再次设置所有内容。 如果您是从docker在k8s pod中运行Jenkins,这是我的情况,并且无法运行命令,那么您可以通过删除pod来重新启动Jenkins:
本章将介绍在Windows和Linux系统上设置Spring AOP的过程。 Spring AOP可以通过以下几个简单的步骤安装和集成到您当前的Java环境和MAVEN中,而无需任何复杂的设置过程。安装时需要用户权限。 系统要求及工具 JDK1.5及以上版本 Maven 3及以上版本 Eclipse最新版本 步骤1:Java安装 首先,您需要在系统上安装Java软件开发工具包(SDK)。要验证这一
E立方管理平台对数据安全有完善的考虑,除了平台级别的安全措施(详见:http://www.care-e.com/tips/base/about/2015/0610/80.html)外,还在系统中有很多的安全措施设定: 一、账户与密码安全策略 用管理员(admin)身份登录E立方管理平台-->系统管理-->其它设置-->账户与密码安全策略,如下图: 打开后,如下图 按自己的实际需要设定,即可。 二、