Java 玩框架1.2.5:如何测试响应是否安全?
我的联系人公式页面的一个测试用例是确保它始终处于使用SSL的安全上下文中。基本上,我只想知道,我有一个给定的请求,其中Java 玩框架1.2.5:如何测试响应是否安全?,java,testing,https,playframework-1.x,Java,Testing,Https,Playframework 1.x,我的联系人公式页面的一个测试用例是确保它始终处于使用SSL的安全上下文中。基本上,我只想知道,我有一个给定的请求,其中request.secure=true 以下响应不包含有关此的任何信息,其标题为空: @Test public void shouldShowContactForm() { Response response = GET("/contact"); // How can I ask the response, if the complete URL is in HT
request.secure=true代码>
以下响应不包含有关此的任何信息,其标题为空:
@Test
public void shouldShowContactForm() {
Response response = GET("/contact");
// How can I ask the response, if the complete URL is in HTTPS?
}
即使我明确地设置了自己的请求,我也看不到正确的方法:
@Test
public void shouldShowContactFormInSSLContext() {
Request request = newRequest();
request.secure = true;
Response response = GET(request, "/contact");
// Is it now possible?
}
这是测试这一点的正确方法还是我只是缺少了请求/响应的一些重要内容?对于这个问题,我认为我过去为我的应用程序所做的是在我的所有控制器上都有一个@before拦截器,看起来像这样
@Before
static void checkSSL(){
if(Play.mode.equals(Play.Mode.PROD)){
if(!request.secure) {
Router.ActionDefinition cashTicketDefinition = Router.reverse(request.controller + "." + request.actionMethod);
cashTicketDefinition.absolute();
String url = cashTicketDefinition.url.replaceFirst( "http:", "https:");
redirect(url, true);
}
}
}
这正是问题所在,没有“response.secure”字段。从响应中获取此信息的唯一方法是查看位置的标题(如果以“https”开头)。但是一个简单的GET调用的头是空的。@crap-我认为您要做的只是强制每个请求都是安全的。我在上面编辑了我的帖子来演示。