Example usage for org.joda.time.format DateTimeFormatter parseDateTime

List of usage examples for org.joda.time.format DateTimeFormatter parseDateTime

Introduction

In this page you can find the example usage for org.joda.time.format DateTimeFormatter parseDateTime.

Prototype

public DateTime parseDateTime(String text) 

Source Link

Document

Parses a date-time from the given text, returning a new DateTime.

Usage

From source file:au.org.scoutmaster.domain.Contact.java

public void setBirthDate(final String fieldValue) {
    final DateTimeParser[] parsers = { DateTimeFormat.forPattern("yyyy-MM-dd").getParser(),
            DateTimeFormat.forPattern("yyyy/MM/dd").getParser() };
    final DateTimeFormatter formatter = new DateTimeFormatterBuilder().append(null, parsers).toFormatter();

    if (fieldValue != null && fieldValue.length() > 0) {
        final DateTime date1 = formatter.parseDateTime(fieldValue);
        setBirthDate(new java.sql.Date(date1.toDate().getTime()));
    }//w w w .  ja v  a 2 s  . c o  m
}

From source file:be.agiv.security.client.IPSTSClient.java

License:Open Source License

private SecurityToken getSecurityToken(String username, String password, X509Certificate certificate,
        PrivateKey privateKey) {//from w  ww  .  java  2s .  c o  m
    RequestSecurityTokenType requestSecurityToken = this.objectFactory.createRequestSecurityTokenType();
    List<Object> requestSecurityTokenContent = requestSecurityToken.getAny();
    requestSecurityTokenContent.add(this.objectFactory.createRequestType(WSConstants.ISSUE_REQUEST_TYPE));

    EntropyType entropy = this.objectFactory.createEntropyType();
    requestSecurityTokenContent.add(this.objectFactory.createEntropy(entropy));
    BinarySecretType binarySecret = this.objectFactory.createBinarySecretType();
    entropy.getAny().add(this.objectFactory.createBinarySecret(binarySecret));
    binarySecret.setType(WSConstants.SECRET_TYPE_NONCE);

    requestSecurityTokenContent.add(this.objectFactory.createKeyType(WSConstants.KEY_TYPE_SYMMETRIC));

    requestSecurityTokenContent.add(this.objectFactory.createKeySize(256L));

    if (null == this.wsTrustHandler.getSecondaryParameters()) {
        requestSecurityTokenContent
                .add(this.objectFactory.createKeyWrapAlgorithm(WSConstants.KEY_WRAP_ALGO_RSA_OAEP_MGF1P));

        requestSecurityTokenContent.add(this.objectFactory.createEncryptWith(WSConstants.ENC_ALGO_AES256_CBC));

        requestSecurityTokenContent.add(this.objectFactory.createSignWith(WSConstants.SIGN_ALGO_HMAC_SHA1));

        requestSecurityTokenContent
                .add(this.objectFactory.createCanonicalizationAlgorithm(WSConstants.C14N_ALGO_EXC));

        requestSecurityTokenContent
                .add(this.objectFactory.createEncryptionAlgorithm(WSConstants.ENC_ALGO_AES256_CBC));
    }

    AppliesTo appliesTo = this.policyObjectFactory.createAppliesTo();
    EndpointReferenceType endpointReference = this.addrObjectFactory.createEndpointReferenceType();
    AttributedURIType address = this.addrObjectFactory.createAttributedURIType();
    address.setValue(this.realm);
    endpointReference.setAddress(address);
    appliesTo.getAny().add(this.addrObjectFactory.createEndpointReference(endpointReference));
    requestSecurityTokenContent.add(appliesTo);

    requestSecurityTokenContent
            .add(this.objectFactory.createComputedKeyAlgorithm(WSConstants.COMP_KEY_ALGO_PSHA1));

    byte[] entropyData = new byte[256 / 8];
    // entropy = keysize / 8
    this.secureRandom.setSeed(System.currentTimeMillis());
    this.secureRandom.nextBytes(entropyData);
    binarySecret.setValue(entropyData);

    BindingProvider bindingProvider = (BindingProvider) this.port;
    if (null != username) {
        this.wsSecurityHandler.setCredentials(username, password);
    } else if (null != certificate) {
        this.wsSecurityHandler.setCredentials(privateKey, certificate);
    }
    this.wsAddressingHandler.setAddressing(WSConstants.WS_TRUST_ISSUE_ACTION, this.location);

    RequestSecurityTokenResponseCollectionType requestSecurityTokenResponseCollection = this.port
            .requestSecurityToken(requestSecurityToken);

    SecurityToken securityToken = new SecurityToken();

    List<RequestSecurityTokenResponseType> requestSecurityTokenResponseList = requestSecurityTokenResponseCollection
            .getRequestSecurityTokenResponse();
    RequestSecurityTokenResponseType requestSecurityTokenResponse = requestSecurityTokenResponseList.get(0);
    List<Object> requestSecurityTokenResponseContent = requestSecurityTokenResponse.getAny();
    for (Object contentObject : requestSecurityTokenResponseContent) {
        LOG.debug("content object: " + contentObject.getClass().getName());
        if (contentObject instanceof Element) {
            Element contentElement = (Element) contentObject;
            LOG.debug("element name: " + contentElement.getLocalName());
        }
        if (contentObject instanceof JAXBElement) {
            JAXBElement jaxbElement = (JAXBElement) contentObject;
            QName qname = jaxbElement.getName();
            LOG.debug("qname: " + qname);
            if (WSConstants.ENTROPY_QNAME.equals(qname)) {
                LOG.debug("trust:Entropy");
                EntropyType serverEntropy = (EntropyType) jaxbElement.getValue();
                List<Object> entropyContent = serverEntropy.getAny();
                for (Object entropyObject : entropyContent) {
                    if (entropyObject instanceof JAXBElement) {
                        JAXBElement entropyElement = (JAXBElement) entropyObject;
                        if (WSConstants.BINARY_SECRET_QNAME.equals(entropyElement.getName())) {
                            BinarySecretType serverBinarySecret = (BinarySecretType) entropyElement.getValue();
                            byte[] serverSecret = serverBinarySecret.getValue();
                            P_SHA1 p_SHA1 = new P_SHA1();
                            byte[] key;
                            try {
                                key = p_SHA1.createKey(entropyData, serverSecret, 0, 256 / 8);
                            } catch (ConversationException e) {
                                LOG.error(e);
                                return null;
                            }
                            LOG.debug("client secret size: " + entropyData.length);
                            LOG.debug("server secret size: " + serverSecret.length);
                            LOG.debug("key size: " + key.length);
                            securityToken.setKey(key);
                        }
                    }
                }
            } else if (WSConstants.LIFETIME_QNAME.equals(qname)) {
                LOG.debug("trust:Lifetime");
                LifetimeType lifetime = (LifetimeType) jaxbElement.getValue();
                String createdValue = lifetime.getCreated().getValue();
                DateTimeFormatter dateTimeFormatter = ISODateTimeFormat.dateTimeParser();
                DateTime created = dateTimeFormatter.parseDateTime(createdValue);
                securityToken.setCreated(created.toDate());
                String expiresString = lifetime.getExpires().getValue();
                DateTime expires = dateTimeFormatter.parseDateTime(expiresString);
                securityToken.setExpires(expires.toDate());
            } else if (WSConstants.REQUESTED_ATTACHED_REFERENCE_QNAME.equals(qname)) {
                RequestedReferenceType requestedReference = (RequestedReferenceType) jaxbElement.getValue();
                SecurityTokenReferenceType securityTokenReference = requestedReference
                        .getSecurityTokenReference();
                List<Object> securityTokenReferenceContent = securityTokenReference.getAny();
                for (Object securityTokenReferenceObject : securityTokenReferenceContent) {
                    LOG.debug("SecurityTokenReference object: "
                            + securityTokenReferenceObject.getClass().getName());
                    if (securityTokenReferenceObject instanceof JAXBElement) {
                        JAXBElement securityTokenReferenceElement = (JAXBElement) securityTokenReferenceObject;
                        LOG.debug("SecurityTokenReference element: " + securityTokenReferenceElement.getName());
                        if (securityTokenReferenceElement.getName().equals(WSConstants.KEY_IDENTIFIER_QNAME)) {
                            KeyIdentifierType keyIdentifier = (KeyIdentifierType) securityTokenReferenceElement
                                    .getValue();
                            String attachedReference = keyIdentifier.getValue();
                            securityToken.setAttachedReference(attachedReference);
                        }

                    }
                }
            } else if (WSConstants.REQUESTED_UNATTACHED_REFERENCE_QNAME.equals(qname)) {
                RequestedReferenceType requestedReference = (RequestedReferenceType) jaxbElement.getValue();
                SecurityTokenReferenceType securityTokenReference = requestedReference
                        .getSecurityTokenReference();
                List<Object> securityTokenReferenceContent = securityTokenReference.getAny();
                for (Object securityTokenReferenceObject : securityTokenReferenceContent) {
                    LOG.debug("SecurityTokenReference object: "
                            + securityTokenReferenceObject.getClass().getName());
                    if (securityTokenReferenceObject instanceof JAXBElement) {
                        JAXBElement securityTokenReferenceElement = (JAXBElement) securityTokenReferenceObject;
                        LOG.debug("SecurityTokenReference element: " + securityTokenReferenceElement.getName());
                        if (securityTokenReferenceElement.getName().equals(WSConstants.KEY_IDENTIFIER_QNAME)) {
                            KeyIdentifierType keyIdentifier = (KeyIdentifierType) securityTokenReferenceElement
                                    .getValue();
                            String unattachedReference = keyIdentifier.getValue();
                            securityToken.setUnattachedReference(unattachedReference);
                        }

                    }
                }
            }
        }
    }

    Element requestedSecurityToken = this.wsTrustHandler.getRequestedSecurityToken();
    securityToken.setToken(requestedSecurityToken);
    securityToken.setRealm(this.realm);
    securityToken.setStsLocation(this.location);

    return securityToken;
}

From source file:be.agiv.security.client.RSTSClient.java

License:Open Source License

/**
 * Retrieves a new security token from the R-STS WS-Trust web service using
 * the given IP-STS security token. The security token retrieved from the
 * R-STS always applies to a certain AGIV web service. The location of this
 * AGIV web service is also passed as parameter.
 * //from ww w .  ja  v  a  2s .c  o  m
 * @param ipStsSecurityToken
 *            the IP-STS security token.
 * @param appliesTo
 *            the WS-SecureConversation enabled web service to which the
 *            R-STS security token should apply.
 * @return the R-STS security token to be used by the service Secure
 *         Conversation.
 */
public SecurityToken getSecurityToken(SecurityToken ipStsSecurityToken, String appliesTo) {
    RequestSecurityTokenType requestSecurityToken = this.objectFactory.createRequestSecurityTokenType();
    List<Object> requestSecurityTokenContent = requestSecurityToken.getAny();
    requestSecurityTokenContent.add(this.objectFactory.createRequestType(WSConstants.ISSUE_REQUEST_TYPE));

    AppliesTo jaxbAppliesTo = this.policyObjectFactory.createAppliesTo();
    EndpointReferenceType endpointReference = this.addrObjectFactory.createEndpointReferenceType();
    AttributedURIType address = this.addrObjectFactory.createAttributedURIType();
    address.setValue(appliesTo);
    endpointReference.setAddress(address);
    jaxbAppliesTo.getAny().add(this.addrObjectFactory.createEndpointReference(endpointReference));
    requestSecurityTokenContent.add(jaxbAppliesTo);

    BindingProvider bindingProvider = (BindingProvider) this.port;
    this.wsAddressingHandler.setAddressing(WSConstants.WS_TRUST_ISSUE_ACTION, this.location);
    this.wsSecurityHandler.setKey(ipStsSecurityToken.getKey(), ipStsSecurityToken.getAttachedReference(),
            ipStsSecurityToken.getToken());

    RequestSecurityTokenResponseCollectionType requestSecurityTokenResponseCollection = this.port
            .requestSecurityToken(requestSecurityToken);

    SecurityToken securityToken = new SecurityToken();

    List<RequestSecurityTokenResponseType> requestSecurityTokenResponseList = requestSecurityTokenResponseCollection
            .getRequestSecurityTokenResponse();
    RequestSecurityTokenResponseType requestSecurityTokenResponse = requestSecurityTokenResponseList.get(0);
    List<Object> requestSecurityTokenResponseContent = requestSecurityTokenResponse.getAny();
    for (Object contentObject : requestSecurityTokenResponseContent) {
        LOG.debug("content object: " + contentObject.getClass().getName());
        if (contentObject instanceof Element) {
            Element contentElement = (Element) contentObject;
            LOG.debug("element name: " + contentElement.getLocalName());
        }
        if (contentObject instanceof JAXBElement) {
            JAXBElement jaxbElement = (JAXBElement) contentObject;
            QName qname = jaxbElement.getName();
            LOG.debug("JAXB qname: " + qname);
            if (WSConstants.LIFETIME_QNAME.equals(qname)) {
                LOG.debug("trust:Lifetime");
                LifetimeType lifetime = (LifetimeType) jaxbElement.getValue();
                String createdValue = lifetime.getCreated().getValue();
                DateTimeFormatter dateTimeFormatter = ISODateTimeFormat.dateTimeParser();
                DateTime created = dateTimeFormatter.parseDateTime(createdValue);
                securityToken.setCreated(created.toDate());
                String expiresString = lifetime.getExpires().getValue();
                DateTime expires = dateTimeFormatter.parseDateTime(expiresString);
                securityToken.setExpires(expires.toDate());
            } else if (WSConstants.REQUESTED_ATTACHED_REFERENCE_QNAME.equals(qname)) {
                RequestedReferenceType requestedReference = (RequestedReferenceType) jaxbElement.getValue();
                SecurityTokenReferenceType securityTokenReference = requestedReference
                        .getSecurityTokenReference();
                List<Object> securityTokenReferenceContent = securityTokenReference.getAny();
                for (Object securityTokenReferenceObject : securityTokenReferenceContent) {
                    LOG.debug("SecurityTokenReference object: "
                            + securityTokenReferenceObject.getClass().getName());
                    if (securityTokenReferenceObject instanceof JAXBElement) {
                        JAXBElement securityTokenReferenceElement = (JAXBElement) securityTokenReferenceObject;
                        LOG.debug("SecurityTokenReference element: " + securityTokenReferenceElement.getName());
                        if (securityTokenReferenceElement.getName().equals(WSConstants.KEY_IDENTIFIER_QNAME)) {
                            KeyIdentifierType keyIdentifier = (KeyIdentifierType) securityTokenReferenceElement
                                    .getValue();
                            String tokenIdentifier = keyIdentifier.getValue();
                            securityToken.setAttachedReference(tokenIdentifier);
                        }
                    }
                }
            } else if (WSConstants.REQUESTED_PROOF_TOKEN_QNAME.equals(qname)) {
                RequestedProofTokenType requestedProofToken = (RequestedProofTokenType) jaxbElement.getValue();
                Object requestedProofTokenContent = requestedProofToken.getAny();
                LOG.debug("requested proof token content: " + requestedProofTokenContent.getClass().getName());
                if (requestedProofTokenContent instanceof JAXBElement) {
                    JAXBElement requestedProofTokenElement = (JAXBElement) requestedProofTokenContent;
                    LOG.debug("requested proof token element: " + requestedProofTokenElement.getName());
                    if (WSConstants.BINARY_SECRET_QNAME.equals(requestedProofTokenElement.getName())) {
                        BinarySecretType serverBinarySecret = (BinarySecretType) requestedProofTokenElement
                                .getValue();
                        byte[] serverSecret = serverBinarySecret.getValue();
                        securityToken.setKey(serverSecret);
                    }
                }
            }
        }
    }

    Element requestedSecurityToken = this.wsTrustHandler.getRequestedSecurityToken();
    securityToken.setToken(requestedSecurityToken);
    securityToken.setRealm(appliesTo);
    securityToken.setStsLocation(this.location);
    securityToken.setParentSecurityToken(ipStsSecurityToken);

    return securityToken;
}

From source file:be.agiv.security.client.SecureConversationClient.java

License:Open Source License

/**
 * Gives back a secure conversation token using the given R-STS security
 * token. The R-STS security token should apply to this web service.
 * //  w w  w  . j a va 2 s  . c om
 * @param rStsSecurityToken
 *            the R-STS security token.
 * @return the secure conversation token to be used to secure the web
 *         service calls.
 */
public SecurityToken getSecureConversationToken(SecurityToken rStsSecurityToken) {
    RequestSecurityTokenType requestSecurityToken = this.objectFactory.createRequestSecurityTokenType();
    List<Object> requestSecurityTokenContent = requestSecurityToken.getAny();

    requestSecurityTokenContent
            .add(this.objectFactory.createTokenType(WSConstants.SECURE_CONVERSATION_TOKEN_TYPE));

    requestSecurityTokenContent.add(this.objectFactory.createRequestType(WSConstants.ISSUE_REQUEST_TYPE));

    EntropyType entropy = this.objectFactory.createEntropyType();
    requestSecurityTokenContent.add(this.objectFactory.createEntropy(entropy));
    BinarySecretType binarySecret = this.objectFactory.createBinarySecretType();
    entropy.getAny().add(this.objectFactory.createBinarySecret(binarySecret));
    binarySecret.setType(WSConstants.SECRET_TYPE_NONCE);
    byte[] entropyData = new byte[256 / 8];
    this.secureRandom.setSeed(System.currentTimeMillis());
    this.secureRandom.nextBytes(entropyData);
    binarySecret.setValue(entropyData);

    requestSecurityTokenContent.add(this.objectFactory.createKeySize(256L));

    BindingProvider bindingProvider = (BindingProvider) this.port;
    this.wsAddressingHandler.setAddressing(WSConstants.SEC_CONV_ISSUE_ACTION, this.location);
    this.wsSecurityHandler.setKey(rStsSecurityToken.getKey(), rStsSecurityToken.getAttachedReference(),
            rStsSecurityToken.getToken());

    RequestSecurityTokenResponseCollectionType requestSecurityTokenResponseCollection = this.port
            .requestSecurityToken(requestSecurityToken);

    SecurityToken securityToken = new SecurityToken();

    List<RequestSecurityTokenResponseType> requestSecurityTokenResponseList = requestSecurityTokenResponseCollection
            .getRequestSecurityTokenResponse();
    RequestSecurityTokenResponseType requestSecurityTokenResponse = requestSecurityTokenResponseList.get(0);
    List<Object> requestSecurityTokenResponseContent = requestSecurityTokenResponse.getAny();
    for (Object contentObject : requestSecurityTokenResponseContent) {
        LOG.debug("content object: " + contentObject.getClass().getName());
        if (contentObject instanceof Element) {
            Element contentElement = (Element) contentObject;
            LOG.debug("element name: " + contentElement.getLocalName());
        }
        if (contentObject instanceof JAXBElement) {
            JAXBElement jaxbElement = (JAXBElement) contentObject;
            QName qname = jaxbElement.getName();
            if (WSConstants.ENTROPY_QNAME.equals(qname)) {
                LOG.debug("trust:Entropy");
                EntropyType serverEntropy = (EntropyType) jaxbElement.getValue();
                List<Object> entropyContent = serverEntropy.getAny();
                for (Object entropyObject : entropyContent) {
                    if (entropyObject instanceof JAXBElement) {
                        JAXBElement entropyElement = (JAXBElement) entropyObject;
                        if (WSConstants.BINARY_SECRET_QNAME.equals(entropyElement.getName())) {
                            BinarySecretType serverBinarySecret = (BinarySecretType) entropyElement.getValue();
                            byte[] serverSecret = serverBinarySecret.getValue();
                            P_SHA1 p_SHA1 = new P_SHA1();
                            byte[] key;
                            try {
                                key = p_SHA1.createKey(entropyData, serverSecret, 0, 256 / 8);
                            } catch (ConversationException e) {
                                LOG.error(e);
                                return null;
                            }
                            LOG.debug("client secret size: " + entropyData.length);
                            LOG.debug("server secret size: " + serverSecret.length);
                            LOG.debug("key size: " + key.length);
                            securityToken.setKey(key);
                        }
                    }
                }
            } else if (WSConstants.LIFETIME_QNAME.equals(qname)) {
                LOG.debug("trust:Lifetime");
                LifetimeType lifetime = (LifetimeType) jaxbElement.getValue();
                String createdValue = lifetime.getCreated().getValue();
                DateTimeFormatter dateTimeFormatter = ISODateTimeFormat.dateTimeParser();
                DateTime created = dateTimeFormatter.parseDateTime(createdValue);
                securityToken.setCreated(created.toDate());
                String expiresString = lifetime.getExpires().getValue();
                DateTime expires = dateTimeFormatter.parseDateTime(expiresString);
                securityToken.setExpires(expires.toDate());
            } else if (WSConstants.REQUESTED_ATTACHED_REFERENCE_QNAME.equals(qname)) {
                RequestedReferenceType requestedReference = (RequestedReferenceType) jaxbElement.getValue();
                SecurityTokenReferenceType securityTokenReference = requestedReference
                        .getSecurityTokenReference();
                List<Object> securityTokenReferenceContent = securityTokenReference.getAny();
                for (Object securityTokenReferenceObject : securityTokenReferenceContent) {
                    LOG.debug("SecurityTokenReference object: "
                            + securityTokenReferenceObject.getClass().getName());
                    if (securityTokenReferenceObject instanceof JAXBElement) {
                        JAXBElement securityTokenReferenceElement = (JAXBElement) securityTokenReferenceObject;
                        LOG.debug("SecurityTokenReference element: " + securityTokenReferenceElement.getName());
                        if (WSConstants.REFERENCE_QNAME.equals(securityTokenReferenceElement.getName())) {
                            ReferenceType reference = (ReferenceType) securityTokenReferenceElement.getValue();
                            String tokenIdentifier = reference.getURI().substring(1);
                            securityToken.setAttachedReference(tokenIdentifier);
                        }
                    }
                }
            } else if (WSConstants.REQUESTED_UNATTACHED_REFERENCE_QNAME.equals(qname)) {
                RequestedReferenceType requestedReference = (RequestedReferenceType) jaxbElement.getValue();
                SecurityTokenReferenceType securityTokenReference = requestedReference
                        .getSecurityTokenReference();
                List<Object> securityTokenReferenceContent = securityTokenReference.getAny();
                for (Object securityTokenReferenceObject : securityTokenReferenceContent) {
                    LOG.debug("SecurityTokenReference object: "
                            + securityTokenReferenceObject.getClass().getName());
                    if (securityTokenReferenceObject instanceof JAXBElement) {
                        JAXBElement securityTokenReferenceElement = (JAXBElement) securityTokenReferenceObject;
                        LOG.debug("SecurityTokenReference element: " + securityTokenReferenceElement.getName());
                        if (WSConstants.REFERENCE_QNAME.equals(securityTokenReferenceElement.getName())) {
                            ReferenceType reference = (ReferenceType) securityTokenReferenceElement.getValue();
                            String tokenIdentifier = reference.getURI();
                            securityToken.setUnattachedReference(tokenIdentifier);
                        }
                    }
                }
            }
        }
    }

    Element requestedSecurityToken = this.wsTrustHandler.getRequestedSecurityToken();
    securityToken.setToken(requestedSecurityToken);
    securityToken.setStsLocation(this.location);
    securityToken.setRealm(this.location); // what else?
    securityToken.setParentSecurityToken(rStsSecurityToken);

    return securityToken;
}

From source file:be.fedict.eid.idp.protocol.ws_federation.sts.SecurityTokenServicePortImpl.java

License:Open Source License

private void validateToken(Element tokenElement, String expectedAudience,
        IdentityProviderConfiguration identityProviderConfiguration) throws Exception {
    List<X509Certificate> certificateChain = identityProviderConfiguration.getIdentityCertificateChain();
    if (certificateChain.isEmpty()) {
        throw new SecurityException("no eID IdP service identity configured");
    }// ww w.  j  a va2 s. c  o m

    Element nsElement = tokenElement.getOwnerDocument().createElement("nsElement");
    nsElement.setAttributeNS(Constants.NamespaceSpecNS, "xmlns:ds", "http://www.w3.org/2000/09/xmldsig#");
    nsElement.setAttributeNS(Constants.NamespaceSpecNS, "xmlns:saml2", "urn:oasis:names:tc:SAML:2.0:assertion");
    LOG.debug("token element: " + tokenElement.getLocalName());
    LOG.debug("token element namespace: " + tokenElement.getNamespaceURI());
    LOG.debug("token: " + toString(tokenElement));

    // fix for recent versions of Apache xmlsec.
    tokenElement.setIdAttribute("ID", true);

    Element signatureElement = (Element) XPathAPI.selectSingleNode(tokenElement, "ds:Signature", nsElement);
    if (null == signatureElement) {
        throw new SecurityException("missing XML signature");
    }

    XMLSignature xmlSignature = new XMLSignature(signatureElement, "");
    KeyInfo keyInfo = xmlSignature.getKeyInfo();
    X509Certificate actualCertificate = keyInfo.getX509Certificate();
    boolean signatureResult = xmlSignature.checkSignatureValue(actualCertificate);
    if (false == signatureResult) {
        throw new SecurityException("invalid XML signature");
    }
    LOG.debug("XML signature OK");

    X509Certificate serviceCertificate = certificateChain.get(0);
    if (false == Arrays.equals(serviceCertificate.getEncoded(), actualCertificate.getEncoded())) {
        throw new SecurityException("SAML signing certificate different from eID IdP service identity");
    }
    LOG.debug("SAML signer OK");

    String actualIssuer = XPathAPI.selectSingleNode(tokenElement, "saml2:Issuer/text()", nsElement)
            .getNodeValue();
    String serviceIssuer = identityProviderConfiguration.getDefaultIssuer();
    if (false == actualIssuer.equals(serviceIssuer)) {
        LOG.debug("actual issuer: " + actualIssuer);
        LOG.debug("service issuer: " + serviceIssuer);
        throw new SecurityException("wrong SAML issuer");
    }
    LOG.debug("SAML issuer OK");

    if (null != expectedAudience) {
        String audience = XPathAPI
                .selectSingleNode(tokenElement,
                        "saml2:Conditions/saml2:AudienceRestriction/saml2:Audience/text()", nsElement)
                .getNodeValue();
        if (false == expectedAudience.equals(audience)) {
            LOG.debug("expected audience: " + expectedAudience);
            LOG.debug("actual audience: " + audience);
            throw new SecurityException("incorrect SAML audience");
        }
        LOG.debug("SAML Audience OK");
    } else {
        LOG.warn("SAML audience restriction not checked");
    }

    String authnContextClassRef = XPathAPI
            .selectSingleNode(tokenElement,
                    "saml2:AuthnStatement/saml2:AuthnContext/saml2:AuthnContextClassRef/text()", nsElement)
            .getNodeValue();
    LOG.debug("AuthnContextClassRef: " + authnContextClassRef);
    SamlAuthenticationPolicy samlAuthenticationPolicy = SamlAuthenticationPolicy
            .getAuthenticationPolicy(authnContextClassRef);
    if (SamlAuthenticationPolicy.AUTHENTICATION != samlAuthenticationPolicy
            && SamlAuthenticationPolicy.AUTHENTICATION_WITH_IDENTIFICATION != samlAuthenticationPolicy) {
        throw new SecurityException("wrong SAML authentication policy: " + samlAuthenticationPolicy);
    }

    String notBeforeStr = XPathAPI.selectSingleNode(tokenElement, "saml2:Conditions/@NotBefore", nsElement)
            .getNodeValue();
    String notOnOrAfterStr = XPathAPI
            .selectSingleNode(tokenElement, "saml2:Conditions/@NotOnOrAfter", nsElement).getNodeValue();
    DateTimeFormatter dateTimeFormatter = ISODateTimeFormat.dateTimeParser();
    DateTime notBefore = dateTimeFormatter.parseDateTime(notBeforeStr);
    DateTime notOnOrAfter = dateTimeFormatter.parseDateTime(notOnOrAfterStr);
    DateTime now = new DateTime();
    if (now.isBefore(notBefore)) {
        throw new SecurityException("SAML assertion in future");
    }
    if (now.isAfter(notOnOrAfter)) {
        throw new SecurityException("SAML assertion expired");
    }
    LOG.debug("SAML timestamp OK");
}

From source file:br.edu.utfpr.cm.JGitMinerWeb.services.metric.AllMetricServices.java

private DateTime getDateTimeFromString(String strParam) {
    DateTimeFormatter formatter = DateTimeFormat.forPattern("dd/MM/yyyy HH:mm:ss");
    //Sun Jun 01 00:00:00 BRT 2014
    String[] str = strParam.split(" ");

    DateTime date = new DateTime(
            formatter.parseDateTime(str[2] + "/" + getMes(str[1]) + "/" + str[5] + " " + str[3]));

    return date;/*from  w w w.  ja  v  a2s  . c o m*/
}

From source file:brickhouse.udf.date.AddISOPeriodUDF.java

License:Apache License

public String evaluate(String dateString, String dateFormat, String periodString) {
    if (dateString == null) {
        return null;
    }/*from   w w  w .j av  a2  s.c o  m*/

    if (dateFormat == null) {
        dateFormat = "YYYY-MM-dd HH:mm:ss";
    }

    DateTimeFormatter dateFormatter = org.joda.time.format.DateTimeFormat.forPattern(dateFormat);
    DateTime input = dateFormatter.parseDateTime(dateString);

    Duration duration = periodFormatter.parsePeriod(periodString).toStandardDuration();
    long seconds = duration.getStandardSeconds();

    DateTime output = input.plusSeconds(Long.valueOf(seconds).intValue());
    return dateFormatter.print(output);
}

From source file:brickhouse.udf.date.DateFormatUDF.java

License:Apache License

public String evaluate(String dt, String fromFormatString, String toFormatString) {
    DateTimeFormatter fromFormatter = org.joda.time.format.DateTimeFormat.forPattern(fromFormatString);
    DateTimeFormatter toFormatter = org.joda.time.format.DateTimeFormat.forPattern(toFormatString);

    DateTime fromDt = fromFormatter.parseDateTime(dt);
    String formatted = toFormatter.print(fromDt);
    return formatted;
}

From source file:broadwick.BroadwickConstants.java

License:Apache License

/**
 * Convert a date object to an integer (number of days from a fixed start date, here 1/1/1900). All dates in the
 * database are stored as integer values using this method.
 * @param date       the date object we are converting.
 * @param dateFormat the format the date is in when doing the conversion.
 * @return the number of days from a fixed 'zero date'.
 *//*  w w  w .  ja  v a 2  s  .c  o m*/
public static int getDate(final String date, final String dateFormat) {
    final DateTimeFormatter pattern = DateTimeFormat.forPattern(dateFormat);
    final DateTime dateTime = pattern.parseDateTime(date);
    return BroadwickConstants.getDate(dateTime);
}

From source file:ca.phon.csv2phon.CSVImporter.java

License:Open Source License

private void importFile(FileType fileInfo) throws IOException {
    // first try relative path from base
    //      String base = importDescription.getBase();
    String location = fileInfo.getLocation();

    // check if location is an absolute path
    boolean absolute = false;
    if (OSInfo.isWindows()) {
        if (location.matches("[A-Z]:\\\\.*"))
            absolute = true;/*w  w  w .  j a va  2 s  .c om*/
    } else {
        if (location.startsWith("/"))
            absolute = true;
    }

    File csvFile = null;
    if (absolute)
        csvFile = new File(location);
    else
        csvFile = new File(base, location);

    if (!csvFile.exists()) {
        // throw an exception
        throw new FileNotFoundException("'" + csvFile.getAbsolutePath()
                + "' not found, check the 'base' attribute of the csvimport element.");
    }

    final InputStreamReader csvInputReader = new InputStreamReader(new FileInputStream(csvFile), fileEncoding);
    // read in csv file
    final CSVReader reader = new CSVReader(csvInputReader, fieldDelimChar, textDelimChar);

    // create a new transcript in the project 
    // with the specified corpus and session name
    final String corpus = importDescription.getCorpus();
    final String session = fileInfo.getSession();
    if (!project.getCorpora().contains(corpus)) {
        LOGGER.info("Creating corpus '" + corpus + "'");
        project.addCorpus(corpus, "");
    }

    final SessionFactory factory = SessionFactory.newFactory();

    final Session t = project.createSessionFromTemplate(corpus, session);
    if (t.getRecordCount() > 0)
        t.removeRecord(0);

    if (fileInfo.getDate() != null) {
        final DateTimeFormatter dateFormatter = DateTimeFormat.forPattern("yyyy-MM-dd");
        DateTime sessionDate = dateFormatter.parseDateTime(fileInfo.getDate());
        t.setDate(sessionDate);
    }

    // add participants
    for (ParticipantType pt : importDescription.getParticipant()) {
        Participant newPart = CSVParticipantUtil.copyXmlParticipant(factory, pt, t.getDate());
        t.addParticipant(newPart);
    }

    if (fileInfo.getMedia() != null) {
        t.setMediaLocation(fileInfo.getMedia());
    }
    // set media file and date
    String[] colLine = reader.readNext();

    // create deptier descriptions as necessary
    for (String columnName : colLine) {
        ColumnMapType colmap = getColumnMap(columnName);
        if (colmap != null) {
            String tierName = colmap.getPhontier();
            if (tierName.equalsIgnoreCase("Don't import"))
                continue;

            if (!SystemTierType.isSystemTier(tierName) && !tierName.equalsIgnoreCase("Speaker:Name")) {
                final TierDescription tierDesc = factory.createTierDescription(tierName, colmap.isGrouped(),
                        String.class);
                t.addUserTier(tierDesc);
            }
        }
    }

    int createdParticipant = 0;
    String[] currentRow = null;
    while ((currentRow = reader.readNext()) != null) {

        // add a new record to the transcript
        Record utt = factory.createRecord();
        t.addRecord(utt);

        for (int colIdx = 0; colIdx < colLine.length; colIdx++) {
            String csvcol = colLine[colIdx];
            String rowval = currentRow[colIdx];

            ColumnMapType colmap = getColumnMap(csvcol);
            if (colmap == null) {
                // print warning and continue
                LOGGER.warning("No column map for csv column '" + csvcol + "'");
                continue;
            }

            // convert if necessary
            TranscriptConverter tc = null;
            if (colmap.getFilter() != null && colmap.getFilter().length() > 0) {
                tc = TranscriptConverter.getInstanceOf(colmap.getFilter());
                if (tc == null) {
                    LOGGER.warning("Could not find transcript converter '" + colmap.getFilter() + "'");
                }
            }

            String phontier = colmap.getPhontier().trim();
            if (phontier.equalsIgnoreCase("Don't Import")) {
                continue;
            }

            // do data pre-formatting if required
            if (colmap.getScript() != null) {
                // TODO: create a new javascript context and run the given script
            }

            // handle participant tier
            if (phontier.equals("Speaker:Name")) {

                // look for the participant in the transcript
                Participant speaker = null;
                for (Participant p : t.getParticipants()) {
                    if (p.toString().equals(rowval)) {
                        speaker = p;
                        break;
                    }
                }

                // if not found in the transcript, find the
                // participant info in the import description
                // add add the participant
                if (speaker == null) {
                    speaker = factory.createParticipant();
                    speaker.setName(rowval);
                    speaker.setRole(ParticipantRole.PARTICIPANT);

                    String id = "PA" + (createdParticipant > 0 ? createdParticipant : "R");
                    ++createdParticipant;
                    speaker.setId(id);

                    t.addParticipant(speaker);
                }

                utt.setSpeaker(speaker);
            } else {
                if (colmap.isGrouped() == null)
                    colmap.setGrouped(true);
                // convert rowval into a list of group values
                List<String> rowVals = new ArrayList<String>();
                if (colmap.isGrouped() && rowval.startsWith("[") && rowval.endsWith("]")) {
                    String[] splitRow = rowval.split("\\[");
                    for (int i = 1; i < splitRow.length; i++) {
                        String splitVal = splitRow[i];
                        splitVal = splitVal.replaceAll("\\]", "");
                        rowVals.add(splitVal);
                    }
                } else {
                    rowVals.add(rowval);
                }

                final SystemTierType systemTier = SystemTierType.tierFromString(phontier);
                if (systemTier != null) {
                    if (systemTier == SystemTierType.Orthography) {
                        final Tier<Orthography> orthoTier = utt.getOrthography();
                        for (String grpVal : rowVals) {
                            try {
                                final Orthography ortho = Orthography.parseOrthography(grpVal);
                                orthoTier.addGroup(ortho);
                            } catch (ParseException e) {
                                final Orthography ortho = new Orthography();
                                final UnvalidatedValue uv = new UnvalidatedValue(grpVal, e);
                                ortho.putExtension(UnvalidatedValue.class, uv);
                                orthoTier.addGroup(ortho);
                            }
                        }
                    } else if (systemTier == SystemTierType.IPATarget
                            || systemTier == SystemTierType.IPAActual) {
                        final Tier<IPATranscript> ipaTier = (systemTier == SystemTierType.IPATarget
                                ? utt.getIPATarget()
                                : utt.getIPAActual());
                        for (String grpVal : rowVals) {
                            if (tc != null) {
                                grpVal = tc.convert(grpVal);
                            }
                            grpVal = grpVal.trim();
                            final IPATranscript ipa = (new IPATranscriptBuilder()).append(grpVal)
                                    .toIPATranscript();
                            ipaTier.addGroup(ipa);
                        }
                    } else if (systemTier == SystemTierType.Notes) {
                        utt.getNotes().addGroup(rowval);
                    } else if (systemTier == SystemTierType.Segment) {
                        final MediaSegmentFormatter segmentFormatter = new MediaSegmentFormatter();
                        MediaSegment segment = factory.createMediaSegment();
                        segment.setStartValue(0.0f);
                        segment.setEndValue(0.0f);
                        segment.setUnitType(MediaUnit.Millisecond);
                        try {
                            segment = segmentFormatter.parse(rowval);
                        } catch (ParseException e) {
                            LOGGER.log(Level.SEVERE, e.getLocalizedMessage(), e);
                        }
                        utt.getSegment().addGroup(segment);
                    }
                } else {
                    Tier<String> tier = utt.getTier(phontier, String.class);
                    if (tier == null) {
                        tier = factory.createTier(phontier, String.class, colmap.isGrouped());
                        utt.putTier(tier);
                    }

                    for (String grpVal : rowVals) {
                        tier.addGroup(grpVal);
                    }
                }
            }
        } // end for(colIdx)

        // do syllabification + alignment if necessary
        ColumnMapType targetMapping = getPhonColumnMap(SystemTierType.IPATarget.getName());
        ColumnMapType actualMapping = getPhonColumnMap(SystemTierType.IPAActual.getName());
        if (targetMapping != null && actualMapping != null) {

            final SyllabifierLibrary library = SyllabifierLibrary.getInstance();

            String targetLangName = targetMapping.getSyllabifier();
            if (targetLangName == null) {
                targetLangName = SyllabifierLibrary.getInstance().defaultSyllabifierLanguage().toString();
            }
            final Language targetLang = Language.parseLanguage(targetLangName);

            String actualLangName = targetMapping.getSyllabifier();
            if (actualLangName == null) {
                actualLangName = SyllabifierLibrary.getInstance().defaultSyllabifierLanguage().toString();
            }
            final Language actualLang = Language.parseLanguage(actualLangName);

            final PhoneAligner aligner = new PhoneAligner();

            Syllabifier targetSyllabifier = library.getSyllabifierForLanguage(targetLang);
            Syllabifier actualSyllabifier = library.getSyllabifierForLanguage(actualLang);

            for (int i = 0; i < utt.numberOfGroups(); i++) {
                final Group grp = utt.getGroup(i);
                final IPATranscript targetRep = grp.getIPATarget();
                if (targetSyllabifier != null) {
                    targetSyllabifier.syllabify(targetRep.toList());
                }

                final IPATranscript actualRep = grp.getIPAActual();
                if (actualSyllabifier != null) {
                    actualSyllabifier.syllabify(actualRep.toList());
                }

                PhoneMap pm = aligner.calculatePhoneMap(targetRep, actualRep);
                grp.setPhoneAlignment(pm);
            }

        }
    } // end while(currentRow)

    reader.close();

    // save transcript
    final UUID writeLock = project.getSessionWriteLock(t);
    if (writeLock != null) {
        project.saveSession(t, writeLock);
        project.releaseSessionWriteLock(t, writeLock);
    }
}