package jp.aegif.nemaki.util; import java.util.Arrays; import java.util.List; import java.util.Map; import org.apache.chemistry.opencmis.client.bindings.spi.StandardAuthenticationProvider; import org.w3c.dom.Document; import org.w3c.dom.Element; public class NemakiAuthenticationProvider extends StandardAuthenticationProvider{ private static final long serialVersionUID = -6364098356084893084L; @Override public Map<String, List<String>> getHTTPHeaders(String url) { Map<String, List<String>> header = super.getHTTPHeaders(url); header.put(Constant.AUTH_TOKEN, Arrays.asList((String)getSession().get(Constant.AUTH_TOKEN))); header.put(Constant.AUTH_TOKEN_APP, Arrays.asList((String)getSession().get(Constant.AUTH_TOKEN_APP))); return header; } @Override public Element getSOAPHeaders(Object portObject) { String token = (String)getSession().get(Constant.AUTH_TOKEN); String app = (String)getSession().get(Constant.AUTH_TOKEN_APP); Element wsseSecurityElement = super.getSOAPHeaders(portObject); Document document = wsseSecurityElement.getOwnerDocument(); Element tokenElement = document.createElementNS(WSSE_NAMESPACE, Constant.AUTH_TOKEN); tokenElement.appendChild(document.createTextNode(token)); wsseSecurityElement.appendChild(tokenElement); Element appElement = document.createElementNS(WSSE_NAMESPACE, Constant.AUTH_TOKEN_APP); appElement.appendChild(document.createTextNode(app)); wsseSecurityElement.appendChild(appElement); Element tokenObjectElement = document.createElementNS(WSSE_NAMESPACE, "nemaki_auth_token_object"); wsseSecurityElement.appendChild(tokenObjectElement); tokenObjectElement.appendChild(tokenElement); tokenObjectElement.appendChild(appElement); return wsseSecurityElement; } }