繁体   English   中英

Jaxb:将参数传递给@XmlJavaTypeAdapter

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM