我使用以下方法创建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注释,但它没有工作(总是空值)。我如何实现将密钥发送到XmlJavaTypeAdapter?
此致
答案 0 :(得分:0)
我认为XmlJavaTypeAdapter不是加密的好地方。我改变了我的代码,在我的对象创建中加密,它更有意义,更容易实现,并且有效。
此致