Java tutorial
/* * soapUI, copyright (C) 2004-2011 eviware.com * * soapUI is free software; you can redistribute it and/or modify it under the * terms of version 2.1 of the GNU Lesser General Public License as published by * the Free Software Foundation. * * soapUI is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU Lesser General Public License for more details at gnu.org. */ package com.eviware.soapui.impl.wsdl.support.wss.entries; import javax.swing.JComponent; import org.apache.ws.security.WSSConfig; import org.apache.ws.security.message.WSSecHeader; import org.apache.ws.security.message.WSSecTimestamp; import org.w3c.dom.Document; import com.eviware.soapui.config.WSSEntryConfig; import com.eviware.soapui.impl.wsdl.support.wss.OutgoingWss; import com.eviware.soapui.model.propertyexpansion.PropertyExpansionContext; import com.eviware.soapui.support.components.SimpleBindingForm; import com.eviware.soapui.support.xml.XmlObjectConfigurationBuilder; import com.eviware.soapui.support.xml.XmlObjectConfigurationReader; import com.jgoodies.binding.PresentationModel; public class AddTimestampEntry extends WssEntryBase { public static final String TYPE = "Timestamp"; private int timeToLive; private boolean strictTimestamp; public void init(WSSEntryConfig config, OutgoingWss container) { super.init(config, container, TYPE); } @Override protected JComponent buildUI() { SimpleBindingForm form = new SimpleBindingForm(new PresentationModel<AddTimestampEntry>(this)); form.addSpace(5); form.appendTextField("timeToLive", "Time To Live", "Sets the TimeToLive value for the Timestamp Token"); form.appendCheckBox("strictTimestamp", "Millisecond Precision", "Sets precision of timestamp to milliseconds"); return form.getPanel(); } @Override protected void load(XmlObjectConfigurationReader reader) { timeToLive = reader.readInt("timeToLive", 0); strictTimestamp = reader.readBoolean("strictTimestamp", true); } @Override protected void save(XmlObjectConfigurationBuilder builder) { builder.add("timeToLive", timeToLive); builder.add("strictTimestamp", strictTimestamp); } public void process(WSSecHeader secHeader, Document doc, PropertyExpansionContext context) { if (timeToLive <= 0) return; WSSecTimestamp timestamp = new WSSecTimestamp(); timestamp.setTimeToLive(timeToLive); if (!strictTimestamp) { WSSConfig wsc = WSSConfig.getNewInstance(); wsc.setPrecisionInMilliSeconds(false); wsc.setTimeStampStrict(false); timestamp.setWsConfig(wsc); } timestamp.build(doc, secHeader); } public String getTimeToLive() { return String.valueOf(timeToLive); } public boolean isStrictTimestamp() { return strictTimestamp; } public void setStrictTimestamp(boolean strictTimestamp) { this.strictTimestamp = strictTimestamp; saveConfig(); } public void setTimeToLive(String timeToLive) { try { this.timeToLive = Integer.valueOf(timeToLive); saveConfig(); } catch (Exception e) { } } }