【发布时间】:2015-12-11 21:35:09
【问题描述】:
我正在使用 Spring Boot / JAX-WS (CXF) 创建soap webservice 我想加密一个字段。我为此使用 XmlJavaTypeAdapter。 例如:
@XmlJavaTypeAdapter(CypherStringAdapter.class)
private String cryptedField;
CypherStringAdapter 类:
package fr.hop.meta4;
import java.io.UnsupportedEncodingException;
import javax.xml.bind.annotation.adapters.XmlAdapter;
import org.springframework.beans.factory.annotation.Value;
import fr.hop.aes.AESEncryptor;
public class CypherStringAdapter extends XmlAdapter<String, String> {
@Value("${cypher.key}")
private String key;
private AESEncryptor cypher;
public CypherStringAdapter() throws UnsupportedEncodingException {
cypher = new AESEncryptor(key);
}
@Override
public String marshal(String v) throws Exception {
if (v != null)
return cypher.encrypt(v);
return null;
}
@Override
public String unmarshal(String v) throws Exception {
if (v != null)
return cypher.decrypt(v);
return null;
}
}
我想将键值外部化。我尝试使用 @value 注释,但它不起作用(始终为空值)。我怎样才能实现向 XmlJavaTypeAdapter 发送密钥?
问候
【问题讨论】:
-
有趣的场景,不仅因为加密,还因为参数的解组可以依赖于一个或多个其他参数。
-
你能把参数传递给
JaxB XMLAdapter吗?我也在做类似的事情,我需要将类参数传递给XMLAdapter并访问它的 Getter 方法:stackoverflow.com/questions/67312205/…
标签: java spring web-services jaxb jax-ws