我有一个Person包含@Controllers 列表的模型属性.
我创建了一些Javascript代码,用于删除html电子邮件列表中的元素.这是纯Javascript客户端代码,没有AJAX调用.
提交后,我不明白为什么我在相应的@Controller方法中获取所有电子邮件,甚至是在html中删除的电子邮件.
有人可以解释一下吗?
JSP:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></meta>
<link rel="stylesheet" href="<c:url value="/styles/resume.css"/>" type="text/css"></link>
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"></link>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
<script src="/resume/js/jquery.editable-1.0.1.js"></script>
<title>Resumes manager</title>
<script>
$(document).ready(function() {
$('.trash').click(function() {
$(this.parentNode).remove();
});
});
</script>
</head>
<body>
<h1>Personal data</h1>
<form:form modelAttribute="person" action="/resume/person/edit/save" id="personForm" method="post" >
<table>
<tr>
<td>Email addresses:</td> …Run Code Online (Sandbox Code Playgroud) 当我ResponseEntity<T>用作 FeignClient 方法的返回值时,我希望它返回一个状态为 400 的 ResponseEntity 如果它是服务器返回的。但它会抛出一个FeignException.
如何从 FeignClient 获得正确的 ResponseEntity 而不是 Exception ?
这是我的 FeignClient:
@FeignClient(value = "uaa", configuration = OauthFeignClient.Conf.class)
public interface OauthFeignClient {
@RequestMapping(
value = "/oauth/token",
method = RequestMethod.POST,
consumes = MULTIPART_FORM_DATA_VALUE,
produces = APPLICATION_JSON_VALUE)
ResponseEntity<OauthTokenResponse> token(Map<String, ?> formParams);
class Conf {
@Value("${oauth.client.password}")
String oauthClientPassword;
@Bean
public Encoder feignFormEncoder() {
return new SpringFormEncoder();
}
@Bean
public Contract feignContract() {
return new SpringMvcContract();
}
@Bean
public BasicAuthRequestInterceptor basicAuthRequestInterceptor() {
return new BasicAuthRequestInterceptor("web-client", oauthClientPassword); …Run Code Online (Sandbox Code Playgroud) 我只是很难让控制器单元测试正常工作,因为IMO,如果使用OAuth ,Spring文档中的内容还不够。就我而言,它是带有JWT的Oauth2。
我尝试使用@WithMockUser,@WithUserDetails甚至定义了自己的注释@WithSecurityContext和一个自定义,UserSecurityContextFactory但是在评估安全性表达式时,无论我在工厂中将测试上下文设置为什么,总是在UserSecurityContext中获得匿名用户。
我提出了我刚想到的解决方案,但是由于我不确定嘲笑TokenService是最有效/干净的方法,请随时提供更好的解决方案。
我需要使用spring-boot:build-imageand将自签名证书添加到 spring-boot docker 映像中paketo-buildpacks/ca-certificates,但无法使其工作。
所以:
paketo-buildpacks/ca-certificates绑定?mvn spring-boot:build-image?到目前为止我尝试过但没有成功:更新 pom.xml spring-boot-maven-plugin:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<image>
<bindings>
<binding>${basedir}/bindings/ca-certificates:/platform/bindings/ca-certificates</binding>
</bindings>
</image>
</configuration>
<executions>
<execution>
<goals>
<goal>build-image</goal>
</goals>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
来自${basedir}文件夹:
mkdir bindings
mkdir bindings/ca-certificates
echo "ca-certificates" > bindings/ca-certificates/type
cp ~/.ssh/mycert.pem bindings/ca-certificates/
mvn spring-boot:build-image
Run Code Online (Sandbox Code Playgroud)
编辑:按照 @nick-valanos 的建议,将图像绑定配置直接移动到 boot-plugin 下(而不是在特定执行中)并解决了问题。
java ×2
spring-boot ×2
buildpack ×1
javascript ×1
jquery ×1
jwt ×1
spring ×1
spring-mvc ×1
spring-test ×1