Package com.eviware.soapui.impl.wsdl.support.wss.entries

Source Code of com.eviware.soapui.impl.wsdl.support.wss.entries.TimestampEntry

/*
* Copyright 2004-2014 SmartBear Software
*
* Licensed under the EUPL, Version 1.1 or - as soon as they will be approved by the European Commission - subsequent
* versions of the EUPL (the "Licence");
* You may not use this work except in compliance with the Licence.
* You may obtain a copy of the Licence at:
*
* http://ec.europa.eu/idabc/eupl
*
* Unless required by applicable law or agreed to in writing, software distributed under the Licence is
* distributed on an "AS IS" basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the Licence for the specific language governing permissions and limitations
* under the Licence.
*/

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 TimestampEntry 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<TimestampEntry>(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) {
        }
    }
}
TOP

Related Classes of com.eviware.soapui.impl.wsdl.support.wss.entries.TimestampEntry

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.