[英]Jaxb: Passing parameter to @XmlJavaTypeAdapter
我正在使用以下方法创建soap webservice:Spring Boot / JAX-WS(CXF)我想加密一个字段。 我为此使用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批注,但是它不起作用(始终为null值)。 我如何实现将密钥发送到XmlJavaTypeAdapter?
问候
我认为XmlJavaTypeAdapter不是加密的好地方。 我更改代码以在对象创建过程中添加加密,它更有意义,更易于实现并且有效。
问候
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.