List of usage examples for org.joda.time.format DateTimeFormatter parseDateTime
public DateTime parseDateTime(String text)
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); } }