FTPS config

Hi,
I am trying to send files to an FTP(s) server over an SSL protocol. The FTP(s) server is at the receiving side.
The client has provided us with the public certificate.
I have these queries. PLease answer to each query separately.
1. Now that we have the public certificate,I guess we need to check with the (receiver) client as to who is the CA (certification authority) of that certificate. Because I suppose this CA should be in the list of trusted CA'a in PI. Kindly confirm.
2. I have seen the procedure of generating certificates and keys pairs for a particular keystore view (pdf for Message Level Security).The most important question that I have is: Do we generate keystore-views for a specific CA? If not how is it?. Is the certificate and key pair common for all CA's in the PI server list?
3. Since we are sending data over the FTP adapter, what really applies to us is the procedure of 'how to configure SSL for AS java'. Or do we have to enable SSL for both ABAP and Java stack separately. Kindly confirm.
4. I could see the parameter 'X.509 client authentication' in FTP adapter. I assume X.509 is the certificate from a trusted CA and surely we have to enter the keystore parameters here. Is this the only trusted CA available in PI servers? And we expect partners also to have X.509 public certificate (to be given to us in cases where we are sending data)?
Please do not provide me the ususal sdn and help.sap links. I have gone through much of them.
Still these questions remain.
Of course if they help in answering specific questions, you may please.
Kindly answer each question to the point and completely.
Thanks,
John

Hi,
please check below thread.
Re: Steps for File Transfer through FTPS...!!!
Regards,
Deepak.

Similar Messages

  • UC560 CDR FTP Config

    Hi
    I have a UC-560 and I want to send automaticaly the CDR for all outgoing call to the FTP server.
    i have config the UC560 as follows:
    gw-accounting file
    primary ftp 192.168.0.107:21/CDR username CDR password <removed>
    acct-template callhistory-detail
    maximum buffer-size  15
    maximum retry-count 3
    maximum fileclose-timer 300
    maximum cdrflush-timer 245
    cdr-format compact
    However I am not able to ftp the CDR files to my Call Accounting Server. I got this from my ftp client:
    Status:          Connecting to 192.168.0.19:21...
    Status:          Connection attempt failed with "ECONNREFUSED - Connection refused by server".
    Error:          Could not connect to server
    Also I found this in the logs:
    539    2638347 Jan 18 2013 10:07:18 -05:00 cdr.Grove_Ochi.01_18_2013_09_02_09.013
    540          0 Jan 18 2013 10:09:58 -05:00 cdr.Grove_Ochi.01_18_2013_10_09_58.226
    541          0 Jan 18 2013 10:09:58 -05:00 cdr.Grove_Ochi.01_18_2013_10_09_58.546
    542          0 Jan 18 2013 10:09:58 -05:00 cdr.Grove_Ochi.01_18_2013_10_09_58.866
    543          0 Jan 18 2013 10:09:58 -05:00 cdr.Grove_Ochi.01_18_2013_10_09_59.286
    544          0 Jan 22 2013 16:56:30 -05:00 cdr.Grove_Ochi.01_22_2013_16_56_31.946
    545          0 Jan 22 2013 16:56:32 -05:00 cdr.Grove_Ochi.01_22_2013_16_56_32.270
    546          0 Jan 22 2013 16:56:32 -05:00 cdr.Grove_Ochi.01_22_2013_16_56_32.590
    547          0 Jan 22 2013 16:56:32 -05:00 cdr.Grove_Ochi.01_22_2013_16_56_33.010
    548          0 Jan 22 2013 16:56:32 -05:00 cdr.Grove_Ochi.01_22_2013_16_56_33.330
    549          0 Mar 18 2013 12:54:36 -04:00 cdr.Grove_Ochi.03_18_2013_12_54_36.003
    550          0 Mar 18 2013 12:54:36 -04:00 cdr.Grove_Ochi.03_18_2013_12_54_36.339
    551          0 Mar 18 2013 12:54:36 -04:00 cdr.Grove_Ochi.03_18_2013_12_54_36.763
    552          0 Mar 18 2013 12:54:36 -04:00 cdr.Grove_Ochi.03_18_2013_12_54_37.091
    553          0 Mar 18 2013 12:54:36 -04:00 cdr.Grove_Ochi.03_18_2013_12_54_37.415
    554          0 Mar 18 2013 12:54:36 -04:00 cdr.Grove_Ochi.03_18_2013_12_54_37.739
    555          0 Mar 18 2013 12:54:38 -04:00 cdr.Grove_Ochi.03_18_2013_12_54_38.163
    556          0 Mar 18 2013 19:18:30 -04:00 cdr.Grove_Ochi.03_18_2013_19_18_30.392
    557          0 Mar 18 2013 19:18:30 -04:00 cdr.Grove_Ochi.03_18_2013_19_18_30.716
    558          0 Mar 18 2013 19:18:30 -04:00 cdr.Grove_Ochi.03_18_2013_19_18_31.036
    559          0 Mar 18 2013 19:18:30 -04:00 cdr.Grove_Ochi.03_18_2013_19_18_31.460
    560          0 Mar 18 2013 19:18:30 -04:00 cdr.Grove_Ochi.03_18_2013_19_18_31.780
    561          0 Mar 18 2013 19:18:32 -04:00 cdr.Grove_Ochi.03_18_2013_19_18_32.100
    562          0 Mar 18 2013 19:18:32 -04:00 cdr.Grove_Ochi.03_18_2013_19_18_32.420
    563          0 Mar 18 2013 19:37:28 -04:00 cdr.Grove_Ochi.03_18_2013_19_37_29.323
    564          0 Mar 18 2013 19:37:28 -04:00 cdr.Grove_Ochi.03_18_2013_19_37_29.659
    565          0 Mar 18 2013 19:37:28 -04:00 cdr.Grove_Ochi.03_18_2013_19_37_29.995
    566          0 Mar 18 2013 19:37:30 -04:00 cdr.Grove_Ochi.03_18_2013_19_37_30.331
    567          0 Mar 18 2013 19:37:30 -04:00 cdr.Grove_Ochi.03_18_2013_19_37_30.767
    0 bytes available (260177920 bytes used)
    Tried to flush the CDR files out of the flash but that is not working. I restarted the UC560 but nothing changes.
    What am i doing wrong? Help!

    I added the backup location as follows:
    gw-accounting file
    primary ftp 192.168.0.107:21/cdr username CDR password
    secondary ifs
    acct-template callhistory-detail
    maximum buffer-size  15
    maximum retry-count 3
    maximum fileclose-timer 300
    maximum cdrflush-timer 245
    cdr-format compact
    and the log showed this
    572          0 Mar 18 2013 21:16:34 -04:00 cdr.Grove_Ochi.03_18_2013_21_16_34.996
    573          0 Mar 20 2013 14:46:06 -04:00 flash.Grove_Ochi.03_20_2013_14_46_07.632
    574          0 Mar 20 2013 14:48:08 -04:00 flash.Grove_Ochi.03_20_2013_14_48_08.250
    575          0 Mar 20 2013 14:48:08 -04:00 flash.Grove_Ochi.03_20_2013_14_48_08.706
    576          0 Mar 20 2013 14:48:08 -04:00 flash.Grove_Ochi.03_20_2013_14_48_09.062
    577          0 Mar 20 2013 14:48:08 -04:00 flash.Grove_Ochi.03_20_2013_14_48_09.418
    578          0 Mar 20 2013 14:48:08 -04:00 flash.Grove_Ochi.03_20_2013_14_48_09.874
    The UC560 stop writing the CDR files. How do I get the UC560 to do
    copy flash:testfile.txt ftp://username:[email protected] ?

  • Download file from ftp server

    Can I download files from an ftp server by simply using the ip address or https:// url?    I've only gotten this to work by using the "ftp//:" address in previous projects and I'm not getting this to work in many different attempts. 
    Here is one...
     # FTP Config
    $FTPHost =
    "10.10.10.5"
    $Username =
    "admin"
    $Password =
    "12345678"
    $FTPFile =
    "test.log"
    # FTP Log File Url
    $FTPFileUrl =
    "ftp://" +
    $FTPHost +
    "/" +
    $FTPFile
    # Create FTP Connection
    $FTPRequest =
    [System.Net.FtpWebRequest]::Create("$FTPFileUrl")
    $FTPRequest.Credentials
    = New-Object System.Net.NetworkCredential($Username,
    $Password)
    $FTPRequest.Method =
    [System.Net.WebRequestMethods+Ftp]::DownloadFile
    $FTPRequest.UsePassive
    = $false
    $FTPRequest.UseBinary
    = $true
    $FTPRequest.KeepAlive
    = $false
    # Get FTP File
    $FTPResponse =
    $FTPRequest.GetResponse()
    $ResponseStream =
    $FTPResponse.GetResponseStream()
    $FTPReader =
    New-Object System.IO.Streamreader
    -ArgumentList $ResponseStream
    do
    Write-Host
    $FTPReader.ReadLine()
    while ($FTPReader.ReadLine()
    -ne $null)
    $FTPReader.Close()
    # Create FTP Connection
    $FTPRequest =
    [System.Net.FtpWebRequest]::Create("$FTPFileUrl")
    $FTPRequest.Credentials
    = New-Object System.Net.NetworkCredential($Username,
    $Password)
    $FTPRequest.Method =
    [System.Net.WebRequestMethods+Ftp]::DownloadFile
    $FTPRequest.UsePassive
    = $false
    $FTPRequest.UseBinary
    = $true
    $FTPRequest.KeepAlive
    = $false
    # Get FTP File
    $FTPResponse =
    $FTPRequest.GetResponse()
    $ResponseStream =
    $FTPResponse.GetResponseStream()
    $FTPReader =
    New-Object System.IO.Streamreader
    -ArgumentList $ResponseStream
    do
    Write-Host
    $FTPReader.ReadLine()
    while ($FTPReader.ReadLine()
    -ne $null)
    $FTPReader.Close()

    Hi!
    You don't need to specifically use an IP address. E.g can use
    $FTPHost = "myrandomserver.mycompany.com"
    $Username = "admin"
    $Password = "12345678"
    $FTPFile = "test.log"
    # FTP Log File Url
    $FTPFileUrl = "ftp://" + $FTPHost + "/" + $FTPFile

  • WLC 5508 running 7.4.110.0 unable to tftp upload config from controller

    Hi,
    Two WLC 5508 running identical code version. One is 50 license Primary, the second is HA. Identical config on both. HA WLC can upload its config to the TFTP or FTP server but Primary cannot. The operation fails for  both CLI and GUI and for different protocols i.e. TFTP, FTP.
    #### Primary Controller
    (Cisco Controller) >show sysinfo
    Manufacturer's Name.............................. Cisco Systems Inc.
    Product Name..................................... Cisco Controller
    Product Version.................................. 7.4.110.0
    Bootloader Version............................... 1.0.20
    Field Recovery Image Version..................... 7.6.95.16
    Firmware Version................................. FPGA 1.7, Env 1.8, USB console 2.2
    Build Type....................................... DATA + WPS
    System Name...................................... PRODWC7309
    System Location..................................
    System Contact...................................
    System ObjectID.................................. 1.3.6.1.4.1.9.1.1069
    Redundancy Mode.................................. Disabled
    IP Address....................................... 10.1.30.210
    Last Reset....................................... Power on reset
    System Up Time................................... 18 days 18 hrs 51 mins 35 secs
    System Timezone Location......................... (GMT+10:00) Sydney, Melbourne, Canberra
    System Stats Realtime Interval................... 5
    System Stats Normal Interval..................... 180
    Configured Country............................... AU - Australia
    Operating Environment............................ Commercial (0 to 40 C)
    --More-- or (q)uit
    Internal Temp Alarm Limits....................... 0 to 65 C
    Internal Temperature............................. +34 C
    External Temperature............................. +17 C
    Fan Status....................................... OK
    State of 802.11b Network......................... Enabled
    State of 802.11a Network......................... Enabled
    Number of WLANs.................................. 8
    Number of Active Clients......................... 138
    Memory Current Usage............................. Unknown
    Memory Average Usage............................. Unknown
    CPU Current Usage................................ Unknown
    CPU Average Usage................................ Unknown
    Burned-in MAC Address............................ 3C:08:F6:CA:52:20
    Power Supply 1................................... Present, OK
    Power Supply 2................................... Present, OK
    Maximum number of APs supported.................. 50
    (Cisco Controller) >debug transfer trace enable
    (Cisco Controller) >transfer upload start
    Mode............................................. TFTP
    TFTP Server IP................................... 10.1.22.2
    TFTP Path........................................ /
    TFTP Filename.................................... PRODWC7309-tmp.cfg
    Data Type........................................ Config File
    Encryption....................................... Disabled
    *** WARNING: Config File Encryption Disabled ***
    Are you sure you want to start? (y/N) Y
    *TransferTask: Jun 02 10:41:15.183: Memory overcommit policy changed from 0 to 1
    *TransferTask: Jun 02 10:41:15.183: RESULT_STRING: TFTP Config transfer starting.
    TFTP Config transfer starting.
    *TransferTask: Jun 02 10:41:15.183: RESULT_CODE:1
    *TransferTask: Jun 02 10:41:24.309: Locking tftp semaphore, pHost=10.1.22.2 pFilename=/PRODWC7309-tmp.cfg
    *TransferTask: Jun 02 10:41:24.393: Semaphore locked, now unlocking, pHost=10.1.22.2 pFilename=/PRODWC7309-tmp.cfg
    *TransferTask: Jun 02 10:41:24.393: Semaphore successfully unlocked, pHost=10.1.22.2 pFilename=/PRODWC7309-tmp.cfg
    *TransferTask: Jun 02 10:41:24.394: tftp rc=-1, pHost=10.1.22.2 pFilename=/PRODWC7309-tmp.cfg
    pLocalFilename=/mnt/application/xml/clis/clifile
    *TransferTask: Jun 02 10:41:24.394: RESULT_STRING: % Error: Config file transfer failed - Unknown error - refer to log
    *TransferTask: Jun 02 10:41:24.394: RESULT_CODE:12
    *TransferTask: Jun 02 10:41:24.394: Memory overcommit policy restored from 1 to 0
    % Error: Config file transfer failed - Unknown error - refer to log
    (Cisco Controller) >show logging
    *TransferTask: Jun 02 10:41:24.393: #UPDATE-3-FILE_OPEN_FAIL: updcode.c:4579 Failed to open file /mnt/application/xml/clis/clifile.
    *sshpmReceiveTask: Jun 02 10:41:24.315: #OSAPI-3-MUTEX_FREE_INFO: osapi_sem.c:1087 Sema 0x2b32def8 time=142 ulk=1621944 lk=1621802 Locker(sshpmReceiveTask sshpmrecv.c:1662 pc=0x10b07938) unLocker(sshpmReceiveTask sshpmReceiveTaskEntry:1647 pc=0x10b07938)
    -Traceback: 0x10af9500 0x1072517c 0x10b07938 0x12020250 0x12080bfc
    *TransferTask: Jun 02 10:39:01.789: #UPDATE-3-FILE_OPEN_FAIL: updcode.c:4579 Failed to open file /mnt/application/xml/clis/clifile.
    *sshpmReceiveTask: Jun 02 10:39:01.713: #OSAPI-3-MUTEX_FREE_INFO: osapi_sem.c:1087 Sema 0x2b32def8 time=5598 ulk=1621801 lk=1616203 Locker(sshpmReceiveTask sshpmrecv.c:1662 pc=0x10b07938) unLocker(sshpmReceiveTask sshpmReceiveTaskEntry:1647 pc=0x10b07938)
    -Traceback: 0x10af9500 0x1072517c 0x10b07938 0x12020250 0x12080bfc
    #### HA Controller
    (Cisco Controller) >show sysinfo
    Manufacturer's Name.............................. Cisco Systems Inc.
    Product Name..................................... Cisco Controller
    Product Version.................................. 7.4.110.0
    Bootloader Version............................... 1.0.20
    Field Recovery Image Version..................... 7.6.95.16
    Firmware Version................................. FPGA 1.7, Env 1.8, USB console 2.2
    Build Type....................................... DATA + WPS
    System Name...................................... PRODWC7310
    System Location..................................
    System Contact...................................
    System ObjectID.................................. 1.3.6.1.4.1.9.1.1069
    Redundancy Mode.................................. Disabled
    IP Address....................................... 10.1.31.210
    Last Reset....................................... Software reset
    System Up Time................................... 18 days 19 hrs 1 mins 27 secs
    System Timezone Location......................... (GMT+10:00) Sydney, Melbourne, Canberra
    System Stats Realtime Interval................... 5
    System Stats Normal Interval..................... 180
    Configured Country............................... AU - Australia
    Operating Environment............................ Commercial (0 to 40 C)
    --More-- or (q)uit
    Internal Temp Alarm Limits....................... 0 to 65 C
    Internal Temperature............................. +34 C
    External Temperature............................. +17 C
    Fan Status....................................... OK
    State of 802.11b Network......................... Enabled
    State of 802.11a Network......................... Enabled
    Number of WLANs.................................. 4
    Number of Active Clients......................... 0
    Memory Current Usage............................. Unknown
    Memory Average Usage............................. Unknown
    CPU Current Usage................................ Unknown
    CPU Average Usage................................ Unknown
    Burned-in MAC Address............................ 3C:08:F6:CA:53:C0
    Power Supply 1................................... Present, OK
    Power Supply 2................................... Present, OK
    Maximum number of APs supported.................. 500
    (Cisco Controller) >debug transfer trace enable
    (Cisco Controller) >transfer upload start
    Mode............................................. FTP
    FTP Server IP.................................... 10.1.22.2
    FTP Server Port.................................. 21
    FTP Path......................................... /
    FTP Filename..................................... 10_1_31_210_140602_1050.cfg
    FTP Username..................................... ftpuser
    FTP Password..................................... *********
    Data Type........................................ Config File
    Encryption....................................... Disabled
    *** WARNING: Config File Encryption Disabled ***
    Are you sure you want to start? (y/N) y
    *TransferTask: Jun 02 10:51:31.278: Memory overcommit policy changed from 0 to 1
    *TransferTask: Jun 02 10:51:31.278: RESULT_STRING: FTP Config transfer starting.
    FTP Config transfer starting.
    *TransferTask: Jun 02 10:51:31.278: RESULT_CODE:1
    *TransferTask: Jun 02 10:52:05.468: ftp operation returns 0
    *TransferTask: Jun 02 10:52:05.477: RESULT_STRING: File transfer operation completed successfully.
    *TransferTask: Jun 02 10:52:05.477: RESULT_CODE:11
    File transfer operation completed successfully.
    Not upgrading to 7.4.121.0 because of bug CSCuo63103. Have not restarted the controller yet.
    Any one else had this issue ? Is there a workaround ?
    Thanks,
    Rick.

    Thanks Stephen, In my deployments of 7.4.110.0 version I have not seen this issue so may be controller reboot will fix it (we do have HA to minimize the impact). I will keep the thread updated with findings and may request TAC for the special release 7.4.121.0 if the still not happy with 7.4.110.0
    Rick.

  • File FTP to AS400 Library folder

    hi mates,
    Using the receiver FTP adapter & content conversion, I'm dropping a file on AS400 in a library folder (/QSYS.LIB/XYZ.LIB/). The file is getting created with 'FILE' extension. When I download it on to my desktop and view it with wordpad, I see the actual contents and a line with non-readable character (the char looks line a box).
    However, AS400 people say that the file is not usable for their programs. Because ithey run some SQL queries on it and that doesnt return any data and also when they view the content with their toold they see some non-readable characters.
    What is the Receiver FTP config for dropping the fille onto a AS400 library?
    I've tried using file type, Text with diff encodings given in file adapter help & Binary. It dint help.
    Did any one do this kind of thing earlier? Am I missing something here.
    I appreciate your inputs & references.
    thx
    praveen

    Hey
    yeah,its some encoding problem.anyways, have a look at the following to make sure that you are using the correct encoding for you iSeries
    http://publib.boulder.ibm.com/infocenter/iseries/v5r3/index.jsp?topic=/rzaha/fileenc.htm
    also try asking the AS400 people which encoding they expect.
    i would say,dont do any FCC right now and see if the XML is going properly or not and are they able to read thata XML.if XML goes fine,then use the same encoding and do FCC.
    also if you are seeing the special character(the box) in the bottom of the file,then it means that AS400 is behaving funny for new Line('nl').
    Use '0x2B' instead of 'nl'
    thanx
    ahmad
    Message was edited by:
            Ahmad

  • ESB SOA FTP adapter

    Can someone please explain to me the following error?
    Designtime cache has not been initialized Please look in logs for following signs of failure. Fix them and restart. (a) Database access errors (b) ESB Bootstrap errors (c) OC4J class load errors (d) Product installation errors (e) Export ESB params and verify if host and port parameters are correct. Please contact Oracle Support if unable to fix the issue.
    I looked into the log.xml and it states
    <TSTZ_ORIGINATING>2008-06-16T16:06:25.026-04:00</TSTZ_ORIGINATING>
    <COMPONENT_ID>j2ee</COMPONENT_ID>
    <MSG_ID> J2EE JSP-0008</MSG_ID>
    <MSG_TYPE TYPE="NOTIFICATION"></MSG_TYPE>
    <MSG_LEVEL>1</MSG_LEVEL>
    <HOST_ID>dbdss15h</HOST_ID>
    <HOST_NWADDR>136.180.75.158</HOST_NWADDR>
    <MODULE_ID>jsp</MODULE_ID>
    <THREAD_ID>14</THREAD_ID>
    <USER_ID>soadappl</USER_ID>
    </HEADER>
    <CORRELATION_DATA>
    <EXEC_CONTEXT_ID><UNIQUE_ID>136.180.75.158:77855:1213646785008:39</UNIQUE_ID><SEQ>0</SEQ></EXEC_CONTEXT_ID>
    </CORRELATION_DATA>
    <PAYLOAD>
    <MSG_TEXT>Unable to dispatch JSP Page : Exception:java.io.FileNotFoundException: /soad/app/soadas/10gAS/j2ee/home/applications/orabpel/console/default/index.jsp (No such file or directory) </MSG_TEXT>
    </PAYLOAD>
    </MESSAGE>
    Now i was told to look into the domain.log also but this appears to be for BPEL if not can someone let me know where to obtain this?
    Also i cant manually put my oc4j-ra.xml on the server i have to have a unix admin do it so the path i told them to place it in is
    ORACLE_APP_HOME/j2ee/home/application-deployments/default/FtpAdapter
    We are running an ftpadapter scenario here

    I get this error when trying to deploy to my ESB server and when viewing my ESB via the web or console whatever you would call it. Also im very new to this so when you say esb_parameter i sort of know what you mean than dhydration store you lose me. Now are you saying the host and port name in the oc4j file for the server that my soa server is connecting to ?
    Below is my oc4j file im using this error started after i inserted the last entry ( Im 80 %) sure
    <?xml version="1.0"?>
    <oc4j-connector-factories xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.oracle.com/technology/oracleas/schema/oc4j-connector-factories-10_0.xsd" schema-major-version="10" schema-minor-version="0" >
         <imported-shared-libraries>
              <import-shared-library name="oracle.bpel.common"/>
              <import-shared-library name="oracle.xml"/>
         </imported-shared-libraries>
         <connector-factory location="eis/Ftp/JPMorganDropbox" connector-name="Ftp Adapter">
              <config-property name="host" value="t*****"/>
              <config-property name="port" value="22"/>
              <config-property name="username" value="G****"/>
              <config-property name="password" value=""/>
              <config-property name="ftpAbsolutePathBegin" value="/"/>
              <config-property name="ftpPathSeparator" value="/"/>
              <config-property name="keepConnections" value="true"/>
              <config-property name="serverType" value="unix"/>
              <config-property name="serverLocaleLanguage" value=""/>
              <config-property name="serverLocaleCountry" value=""/>
              <config-property name="serverLocaleVariant" value=""/>
              <config-property name="serverEncoding" value=""/>
              <config-property name="useFtps" value="false"/>
              <config-property name="useImplicitSSL" value="false"/>
              <config-property name="walletLocation" value="C:\wallet\ewallet.p12"/>
              <config-property name="walletPassword" value="welcome1"/>
              <config-property name="channelMask" value="both"/>
              <config-property name="securePort" value="990"/>
              <config-property name="keyStoreProviderName" value=""/>
              <config-property name="keystoreType" value=""/>
              <config-property name="keystoreAlgorithm" value=""/>
              <config-property name="enableCipherSuits" value=""/>
              <config-property name="proxyHost" value=""/>
              <config-property name="proxyPort" value=""/>
              <config-property name="proxyUsername" value=""/>
              <config-property name="proxyPassword" value=""/>
              <config-property name="proxyType" value=""/>
              <config-property name="proxyDefinitionFile" value=""/>
              <config-property name="useProxy" value="false"/>
              <config-property name="useSftp" value="true"/>
              <config-property name="authenticationType" value="publickey"/>
              <config-property name="preferredKeyExchangeAlgorithm" value="diffie-hellman-group1-sha1"/>
              <config-property name="preferredCompressionAlgorithm" value="none"/>
              <config-property name="preferredDataIntegrityAlgorithm" value="hmac-md5"/>
              <config-property name="preferredPKIAlgorithm" value="ssh-rsa"/>
              <config-property name="privateKeyFile" value="/home/soadappl/.ssh/id_rsa"/>
              <config-property name="preferredCipherSuite" value="blowfish-cbc"/>
              <config-property name="transportProvider" value="socket"/>
              <connection-pooling use="none">
              </connection-pooling>
              <security-config use="none">
              </security-config>
         </connector-factory>
         <connector-factory location="eis/Ftp/FtpAdapter" connector-name="Ftp Adapter">
              <config-property name="host" value="localhost"/>
              <config-property name="port" value="21"/>
              <config-property name="username" value="****r"/>
              <config-property name="password" value="******"/>
              <config-property name="ftpAbsolutePathBegin" value="/"/>
              <config-property name="ftpPathSeparator" value="/"/>
              <config-property name="keepConnections" value="true"/>
              <config-property name="serverType" value="unix"/>
              <config-property name="serverLocaleLanguage" value=""/>
              <config-property name="serverLocaleCountry" value=""/>
              <config-property name="serverLocaleVariant" value=""/>
              <config-property name="serverEncoding" value=""/>
              <config-property name="useFtps" value="false"/>
              <config-property name="useImplicitSSL" value="false"/>
              <config-property name="walletLocation" value="C:\wallet\ewallet.p12"/>
              <config-property name="walletPassword" value="welcome1"/>
              <config-property name="channelMask" value="both"/>
              <config-property name="securePort" value="990"/>
              <config-property name="keyStoreProviderName" value=""/>
              <config-property name="keystoreType" value=""/>
              <config-property name="keystoreAlgorithm" value=""/>
              <config-property name="enableCipherSuits" value=""/>
              <config-property name="proxyHost" value=""/>
              <config-property name="proxyPort" value=""/>
              <config-property name="proxyUsername" value=""/>
              <config-property name="proxyPassword" value=""/>
              <config-property name="proxyType" value=""/>
              <config-property name="proxyDefinitionFile" value=""/>
              <config-property name="useProxy" value="false"/>
              <config-property name="useSftp" value="false"/>
              <config-property name="authenticationType" value="password"/>
              <config-property name="preferredKeyExchangeAlgorithm" value="diffie-hellman-group1-sha1"/>
              <config-property name="preferredCompressionAlgorithm" value="none"/>
              <config-property name="preferredDataIntegrityAlgorithm" value="hmac-md5"/>
              <config-property name="preferredPKIAlgorithm" value="ssh-rsa"/>
              <config-property name="privateKeyFile" value=""/>
              <config-property name="preferredCipherSuite" value="blowfish-cbc"/>
              <config-property name="transportProvider" value="socket"/>
              <connection-pooling use="none">
              </connection-pooling>
              <security-config use="none">
              </security-config>
         </connector-factory>
         <connector-factory location="eis/Ftp/CanadaDropbox_WIPRO" connector-name="Ftp Adapter">
              <config-property name="host" value="*****"/>
              <config-property name="port" value="22"/>
              <config-property name="username" value="WIPROtest"/>
              <config-property name="password" value=""/>
              <config-property name="ftpAbsolutePathBegin" value="/"/>
              <config-property name="ftpPathSeparator" value="/"/>
              <config-property name="keepConnections" value="true"/>
              <config-property name="serverType" value="unix"/>
              <config-property name="serverLocaleLanguage" value=""/>
              <config-property name="serverLocaleCountry" value=""/>
              <config-property name="serverLocaleVariant" value=""/>
              <config-property name="serverEncoding" value=""/>
              <config-property name="useFtps" value="false"/>
              <config-property name="useImplicitSSL" value="false"/>
              <config-property name="walletLocation" value="C:\wallet\ewallet.p12"/>
              <config-property name="walletPassword" value="welcome1"/>
              <config-property name="channelMask" value="both"/>
              <config-property name="securePort" value="990"/>
              <config-property name="keyStoreProviderName" value=""/>
              <config-property name="keystoreType" value=""/>
              <config-property name="keystoreAlgorithm" value=""/>
              <config-property name="enableCipherSuits" value=""/>
              <config-property name="proxyHost" value=""/>
              <config-property name="proxyPort" value=""/>
              <config-property name="proxyUsername" value=""/>
              <config-property name="proxyPassword" value=""/>
              <config-property name="proxyType" value=""/>
              <config-property name="proxyDefinitionFile" value=""/>
              <config-property name="useProxy" value="false"/>
              <config-property name="useSftp" value="true"/>
              <config-property name="authenticationType" value="publickey"/>
              <config-property name="preferredKeyExchangeAlgorithm" value="diffie-hellman-group1-sha1"/>
              <config-property name="preferredCompressionAlgorithm" value="none"/>
              <config-property name="preferredDataIntegrityAlgorithm" value="hmac-md5"/>
              <config-property name="preferredPKIAlgorithm" value="ssh-rsa"/>
              <config-property name="privateKeyFile" value="/home/soadappl/.ssh/id_rsa"/>
              <config-property name="preferredCipherSuite" value="blowfish-cbc"/>
              <config-property name="transportProvider" value="socket"/>
              <connection-pooling use="none">
              </connection-pooling>
              <security-config use="none">
              </security-config>
         </connector-factory>
         <connector-factory location="eis/Ftp/CanadaDropbox" connector-name="Ftp Adapter">
              <config-property name="host" value="****"/>
              <config-property name="port" value="22"/>
              <config-property name="username" value="cdn\GDMSC"/>
              <config-property name="password" value=""/>
              <config-property name="ftpAbsolutePathBegin" value="/"/>
              <config-property name="ftpPathSeparator" value="/"/>
              <config-property name="keepConnections" value="true"/>
              <config-property name="serverType" value="unix"/>
              <config-property name="serverLocaleLanguage" value=""/>
              <config-property name="serverLocaleCountry" value=""/>
              <config-property name="serverLocaleVariant" value=""/>
              <config-property name="serverEncoding" value=""/>
              <config-property name="useFtps" value="false"/>
              <config-property name="useImplicitSSL" value="false"/>
              <config-property name="walletLocation" value="C:\wallet\ewallet.p12"/>
              <config-property name="walletPassword" value="welcome1"/>
              <config-property name="channelMask" value="both"/>
              <config-property name="securePort" value="990"/>
              <config-property name="keyStoreProviderName" value=""/>
              <config-property name="keystoreType" value=""/>
              <config-property name="keystoreAlgorithm" value=""/>
              <config-property name="enableCipherSuits" value=""/>
              <config-property name="proxyHost" value=""/>
              <config-property name="proxyPort" value=""/>
              <config-property name="proxyUsername" value=""/>
              <config-property name="proxyPassword" value=""/>
              <config-property name="proxyType" value=""/>
              <config-property name="proxyDefinitionFile" value=""/>
              <config-property name="useProxy" value="false"/>
              <config-property name="useSftp" value="true"/>
              <config-property name="authenticationType" value="publickey"/>
              <config-property name="preferredKeyExchangeAlgorithm" value="diffie-hellman-group1-sha1"/>
              <config-property name="preferredCompressionAlgorithm" value="none"/>
              <config-property name="preferredDataIntegrityAlgorithm" value="hmac-md5"/>
              <config-property name="preferredPKIAlgorithm" value="ssh-rsa"/>
              <config-property name="privateKeyFile" value="/home/soadappl/.ssh/id_rsa"/>
              <config-property name="preferredCipherSuite" value="blowfish-cbc"/>
              <config-property name="transportProvider" value="socket"/>
              <connection-pooling use="none">
              </connection-pooling>
              <security-config use="none">
              </security-config>
         </connector-factory>
         <connector-factory location="eis/Ftp/eBusiness" connector-name="Ftp Adapter">
              <config-property name="host" value="d*****"/>
              <config-property name="port" value="22"/>
              <config-property name="username" value="ftpuser"/>
              <config-property name="password" value=""/>
              <config-property name="ftpAbsolutePathBegin" value="/"/>
              <config-property name="ftpPathSeparator" value="/"/>
              <config-property name="keepConnections" value="true"/>
              <config-property name="serverType" value="unix"/>
              <config-property name="serverLocaleLanguage" value=""/>
              <config-property name="serverLocaleCountry" value=""/>
              <config-property name="serverLocaleVariant" value=""/>
              <config-property name="serverEncoding" value=""/>
              <config-property name="useFtps" value="false"/>
              <config-property name="useImplicitSSL" value="false"/>
              <config-property name="walletLocation" value="C:\wallet\ewallet.p12"/>
              <config-property name="walletPassword" value="welcome1"/>
              <config-property name="channelMask" value="both"/>
              <config-property name="securePort" value="990"/>
              <config-property name="keyStoreProviderName" value=""/>
              <config-property name="keystoreType" value=""/>
              <config-property name="keystoreAlgorithm" value=""/>
              <config-property name="enableCipherSuits" value=""/>
              <config-property name="proxyHost" value=""/>
              <config-property name="proxyPort" value=""/>
              <config-property name="proxyUsername" value=""/>
              <config-property name="proxyPassword" value=""/>
              <config-property name="proxyType" value=""/>
              <config-property name="proxyDefinitionFile" value=""/>
              <config-property name="useProxy" value="false"/>
              <config-property name="useSftp" value="true"/>
              <config-property name="authenticationType" value="publickey"/>
              <config-property name="preferredKeyExchangeAlgorithm" value="diffie-hellman-group1-sha1"/>
              <config-property name="preferredCompressionAlgorithm" value="none"/>
              <config-property name="preferredDataIntegrityAlgorithm" value="hmac-md5"/>
              <config-property name="preferredPKIAlgorithm" value="ssh-rsa"/>
              <config-property name="privateKeyFile" value="/home/soadappl/.ssh/id_rsa"/>
              <config-property name="preferredCipherSuite" value="blowfish-cbc"/>
              <config-property name="transportProvider" value="socket"/>
              <connection-pooling use="none">
              </connection-pooling>
              <security-config use="none">
              </security-config>
         </connector-factory>
         <connector-factory location="eis/Ftp/zdrive" connector-name="Ftp Adapter">
              <config-property name="host" value="*****"/>
              <config-property name="port" value="421"/>
              <config-property name="username" value="cdn/ftpora2"/>
              <config-property name="password" value="****"/>
              <config-property name="ftpAbsolutePathBegin" value="/"/>
              <config-property name="ftpPathSeparator" value="/"/>
              <config-property name="keepConnections" value="true"/>
              <config-property name="serverType" value="unix"/>
              <config-property name="serverLocaleLanguage" value=""/>
              <config-property name="serverLocaleCountry" value=""/>
              <config-property name="serverLocaleVariant" value=""/>
              <config-property name="serverEncoding" value=""/>
              <config-property name="useFtps" value="false"/>
              <config-property name="useImplicitSSL" value="false"/>
              <config-property name="walletLocation" value="C:\wallet\ewallet.p12"/>
              <config-property name="walletPassword" value="welcome1"/>
              <config-property name="channelMask" value="both"/>
              <config-property name="securePort" value="990"/>
              <config-property name="keyStoreProviderName" value=""/>
              <config-property name="keystoreType" value=""/>
              <config-property name="keystoreAlgorithm" value=""/>
              <config-property name="enableCipherSuits" value=""/>
              <config-property name="proxyHost" value=""/>
              <config-property name="proxyPort" value=""/>
              <config-property name="proxyUsername" value=""/>
              <config-property name="proxyPassword" value=""/>
              <config-property name="proxyType" value=""/>
              <config-property name="proxyDefinitionFile" value=""/>
              <config-property name="useProxy" value="false"/>
              <config-property name="useSftp" value="false"/>
              <config-property name="authenticationType" value="password"/>
              <config-property name="preferredKeyExchangeAlgorithm" value="diffie-hellman-group1-sha1"/>
              <config-property name="preferredCompressionAlgorithm" value="none"/>
              <config-property name="preferredDataIntegrityAlgorithm" value="hmac-md5"/>
              <config-property name="preferredPKIAlgorithm" value="ssh-rsa"/>
              <config-property name="privateKeyFile" value=""/>
              <config-property name="preferredCipherSuite" value="blowfish-cbc"/>
              <config-property name="transportProvider" value="socket"/>
              <connection-pooling use="none">
              </connection-pooling>
              <security-config use="none">
              </security-config>
         </connector-factory>
         <connector-factory location="eis/Ftp/concur" connector-name="Sarah Walls FTP">
                   <config-property name="host" value="***.gendyn.com"/>
                   <config-property name="port" value="22"/>
                   <config-property name="username" value="TLSCANCEIS"/>
                   <config-property name="password" value=""/>
                   <config-property name="ftpAbsolutePathBegin" value="/"/>
                   <config-property name="ftpPathSeparator" value="/"/>
                   <config-property name="keepConnections" value="true"/>
                   <config-property name="serverType" value="unix"/>
                   <config-property name="serverLocaleLanguage" value=""/>
                   <config-property name="serverLocaleCountry" value=""/>
                   <config-property name="serverLocaleVariant" value=""/>
                   <config-property name="serverEncoding" value=""/>
                   <config-property name="useFtps" value="false"/>
                   <config-property name="useImplicitSSL" value="false"/>
                   <config-property name="walletLocation" value="C:\wallet\ewallet.p12"/>
                   <config-property name="walletPassword" value="welcome1"/>
                   <config-property name="channelMask" value="both"/>
                   <config-property name="securePort" value="990"/>
                   <config-property name="keyStoreProviderName" value=""/>
                   <config-property name="keystoreType" value=""/>
                   <config-property name="keystoreAlgorithm" value=""/>
                   <config-property name="enableCipherSuits" value=""/>
                   <config-property name="proxyHost" value=""/>
                   <config-property name="proxyPort" value=""/>
                   <config-property name="proxyUsername" value=""/>
                   <config-property name="proxyPassword" value=""/>
                   <config-property name="proxyType" value=""/>
                   <config-property name="proxyDefinitionFile" value=""/>
                   <config-property name="useProxy" value="false"/>
                   <config-property name="useSftp" value="true"/>
                   <config-property name="authenticationType" value="publickey"/>
                   <config-property name="preferredKeyExchangeAlgorithm" value="diffie-hellman-group1-sha1"/>
                   <config-property name="preferredCompressionAlgorithm" value="none"/>
                   <config-property name="preferredDataIntegrityAlgorithm" value="hmac-md5"/>
                   <config-property name="preferredPKIAlgorithm" value="ssh-rsa"/>
                   <config-property name="privateKeyFile" value="/home/soadappl/.ssh/id_rsa"/>
                   <config-property name="preferredCipherSuite" value="blowfish-cbc"/>
                   <config-property name="transportProvider" value="socket"/>
                   <connection-pooling use="none">
                   </connection-pooling>
                   <security-config use="none">
                   </security-config>
         </connector-factory>
    </oc4j-connector-factories>

  • Enable logging for FTP server in 10.8

    Can't figure out how to enable 10.6-style logging for FTP server in 10.8. It used to be configurable via Server Admin allowing you to choose what to log and so on and the logs would go to /Library/Logs. Now I only see some irrelevant stuff in /var/log/system.log and I want to have all the transfers logged on this server. Tried setting parameters via serveradmin ftp:setting = param but it wouldn't appear in the list afterwards no matter what (just copied those off a working 10.6 server).
    As a bonus, I can't figure out where the settings for logging are stored in a 10.6 server either. There's certainly not a mention of a file named FTP.transfer.log. Weird!

    So to help anyone who finds themselves in the same boat and wants to enable ftpd logging on OSX 10.8 proper:
    All operations assume root which is obtained by issuing 'sudo su' or just prefixing every command with 'sudo'.
    First you edit the ftpd's launchd plist file:
    pico /Applications/Server.app/Contents/ServerRoot/System/Library/LaunchDaemons/com.a pple.ftpserver.plist
    Find the section titled 'ProgramArguments'. Amend it so it looks like this:
    <key>ProgramArguments</key>
            <array>
                    <string>ftpd</string>
                    <string>-ll</string>
                    <string>-r</string>
                    <string>-n</string>
                    <string>-d</string>
                    <string>-c</string>
                    <string>/Library/Server/FTP/Config</string>
                    <string>-L</string>
                    <string>/var/log/ftpd.log</string>
            </array>
    Second you edit /etc/asl.conf. This is necessary to make '-d' (debug) switch work since by default syslog won't log any debug-level messages at all.
    pico /etc/asl.conf
    At the end of the file add the following:
    # ftpd verbose logging
    ? [= Facility ftp] [<= Level debug] file /var/log/ftpdv.log
    Third important step is to reboot the server. ftpd's plist configuration is cached somewhere so restarting just the ftp server alone won't work.
    Now what the added switches do:
    -ll enables some logging (PUT and GET commands only despite what the man pages leads you to believe) to a file specified later by -L /path/to/file
    -d enables debug mode which logs everything - including server's response. May be too verbose but at least you get a log of every single command issued to the server by your clients.

  • Can't disable FTP

    My organization prohibits anonymous FTP connectons on our network. Every other HP device we have can have FTP services disabled via the web administration or via telnet command. However the Digital Sender Flow 8500 fn1 doesn't seem to have either ability. The FTP service is missing from the listing of network services, and the normal telnet command does not work (looking at the listing of commands available doesn't show any FTP configuration options). Firmware is FutureSmart 3 - 2304070_439649 - dated 20150218 If I attempt to open a FTP connection to the device I can do so, and login with anonymous. Again:- No option to disable ftp in web administration, network services (TFTP yes, FTP no)- The normal ftp-config:0 command doesn't work (telnet)- Telnet command listing does not include FTP commands- Searching the support forums and Google doesn't bring up any results aside from hundreds of sales brochures that include FTP or TFTP terms. Any ideas? Thanks.

    I ended up solving this via Web JetAdmin. The FTP option is in WJA on that printer, by disabling it in WJA the printer then disabled the FTP service (verified by network scan on the printer). I actually was engaged with HP support on this issue and we were kind of going in circles. They would tell me to disable FTP by clicking the option in the Administration screen. I would send them a screenshot asking where the option was on that screen? They would send a screenshot back that showed the option. I sent another screenshot asking again where the options was because it wasn't on my screen. They replied with another screenshot. It was kind of a circle of miscommunication. Anyway, fixed it in WJA. All good.

  • Load Balancing FTP Server thru CSM using a single Client IP

    Hello,
    We have a need to load balance 3 FTP servers. These servers are reached only from a single client IP which is a database server. The FTP method that is being used is currently passive. Our configuration is currently unidirectional, ie, the FTP client (the one database server) sends to the VIP and the FTP Servers then talk directly back to the FTP client and the traffic does not go back through the CSM. The problem is that because FTP negotiates another port to talk on, we have to use sticky so that the connection is sent back to the original FTP server that sent the FTP data port to talk on. But, since we only have a single client IP that is ever used we are not load balancing appropriately across the FTP servers.
    Traffic flow goes something like this, tcp port followed after colon as an example
    1. FTP Client ----> VIP:21
    2. CSM ---------> FTP Server:21
    3. FTP Server --------> FTP Client(FTP server says come talk to me on port 1700)
    4. FTP Client ---------> VIP:1700
    5. CSM ---------> FTP Server:1700
    6. FTP Server:1700 ---------> FTP Client
    repeat steps 4 thru 6
    Here's our hardware and software:
    WS-X6066-SLB-APC running 4.2(2)
    Config is as follows
    module ContentSwitchingModule 9
    ft group 101 vlan 9
    priority 10
    vlan 216 client
    ip address 10.209.16.31 255.255.252.0
    gateway 10.209.16.1
    vlan 20 server
    ip address 10.209.0.31 255.255.252.0
    alias 10.209.0.11 255.255.252.0
    probe ICMP1 icmp
    interval 3
    failed 3
    receive 3
    serverfarm FHEPRT
    no nat server
    no nat client
    real 10.209.0.72
    inservice
    real 10.209.0.73
    inservice
    real 10.209.0.71
    inservice
    probe ICMP1
    sticky 106 netmask 255.255.255.255 address source timeout 3
    policy FHEPRT_POL1
    sticky-group 106
    serverfarm FHEPRT
    vserver FHEPRT1
    virtual 10.209.16.71 any
    vlan 216
    unidirectional
    serverfarm FHEPRT
    replicate csrp connection
    no persistent rebalance
    slb-policy FHEPRT_POL1
    inservice

    You are missing "service ftp" config in the Vip definition. Try the following
    vserver FHEPRT1
    virtual 10.209.16.71 tcp ftp service ftp
    Syed Iftekhar Ahmed

  • Stale Shares on FTP; can't connect to new ones

    In my original setup of shares, I missed one that I wanted (the directory with the websites) and I had one I no longer needed. So when I logged into the server with FTP, I noticed that that I was missing the share and had the old one that I didn't need.
    So, in Server Admin I dropped the old share (in AFP and FTP) and added the new one. I restarted FTP. However, logging into FTP showed me the old list of shares and not the new one. So I rebooted the server. Still the same thing.
    It's like FTP is not looking at the shares set up in Share Points in the FTP config in Server Admin. Any ideas? Do I need to update something else so that FTP users pick up the shares identified in Server Admin?

    Is there any device limit the new router can accept to go to the internet?
    I don't know if that is your case, but some ISP restrict by contract to a certain number of devices been able to use internet connection.

  • 10.3.9 problems with FTP server - port not open?

    I have set up the ftp server in MacOSX Server 10.3.9 and I think the configuration is correct, but I am unable to access it from a client. When I check the open ports on the server from the client (running 10.4.10), ports 20 and 21 are not open, even though the firewall is not running. How do I open these ports, or start the server listening on them? The FTP server is running as far as Server Admin is concerned, although I have to say that I can't see a process in Activity Monitor with ftp in its name.

    I think I might have got a bit farther with this problem, but this just gets me nearer to the problem, not to a solution.
    When I stop the ftp service I get an error message in the console that says:
    server servermgr_ftp: ftp config:Error:Unable to hup xinetd - pid file shows pid='(null)'
    I believe that this means that Server Admin has tried to get xinetd to read its config file but since xinetd is not running (and hence no pid is available) it is unable to do this.
    If I try and start xinetd from the terminal I get the following error message:
    server xinetd[5484]: bind failed (Permission denied (errno = 13)). service = ftp
    server xinetd[5484]: 5484 {init_services} no services. Exiting...
    I now know that xinetd is the process that (amongst other things) listens on port 20-21 for an attempt to establish an ftp session and then launches ftpd to service that connection. At least I think that is how it works! Or should work...

  • FTP access went bye-bye

    On our new server, we have had a crash or two. After the latest crash, the FTP server stopped accepting regular FTP connections. I can access via HTTP and SFTP, but I get an authorization error (530) when I try to log in to upload pages. I went into my Server Admin program and found that most of my services register my most recent startup, however, the FTP start time is the shipping date of the machine. I have tried all the quick fixes, restarts, etc. and am close to wanting to reinstall the FTP service -- but the server won't let me because we have already updated to 10.4.8. I could sure use some help here as I can not find any discussions or postings from Apple that would help.
    Thanks.

    Thanks for the assistance. I also found out that this
    problem is recurring due to my CrushFTP. Whenever I
    use the 'Install CrushFTP OS X Integration' this
    problem with FTP Access occurrs as it should because
    CrushFTP can't run if FTP Access is not enabled. I
    know dumb on my part for not realising this sooner,
    but thanks very much.
    My problem was also caused by CrushFTP; I emailed Ben Spink (the developer) about it, and he answered:
    "Don't use the osx integration piece. Something changed in the config file of osx and it will no longer work. (...) I may need to send you a fixed file if the integration piece corrupted the osx ftp config. Let me know if everything works correctly when not using daemon and ftp sharing. (you want the ftp sharing system pref off)"
    So I guess you shouldn't turn OS X integration on..

  • Form won't submit, newbie, probably being an idiot

    Probbally being an absolute idiot as completely new to web design, but really stuck, all help hugely appreciated...
    form on http://www.refuseboredom.com/EasterHolidays.html, form is validating itself but doesnt post??
    its supposed to be going to a FormMail.pl which is in the base directory, hosting with godaddy who accept perl scripts and say the script can be put anywhere on the server,
    Don't know what i'm missing!!
    Form Code:
    <div id ="form" >
          <form action="FormMail.pl" method="post" name="form1" target="_top" id="bookingform">
         <input type=hidden name="redirect" value="http://www.refuseboredom.com/thankyou.html" />
         <h2>BOOK HERE</h2>
         <input type=hidden name="recipient" value="[email protected]">
           <div>
            <span id="sprytextfield1">
            <label for="FirstName">Parent/Guardian First Name:</label>
            <input type="text" name="FirstName" id="FirstName" tabindex="1" />
            <span class="textfieldRequiredMsg">A value is required.</span></span>
            </div>
    <span id="sprytextfield2">
    <label for="LastName">Parent/Guardian Surname:</label>
    <input type="text" name="LastName" id="LastName" tabindex="2" />
    <span class="textfieldRequiredMsg">A value is required.</span></span>
         <div>
          <span id="sprytextfield3">
          <label for="Address1">Address 1st line:</label>
          <input type="text" name="Address1" id="Address1" tabindex="3" />
          <span class="textfieldRequiredMsg">A value is required.</span></span>
          </div>
          <div>
          <span id="sprytextfield4">
          <label for="Address2">Address 2nd Line:</label>
          <input type="text" name="Address2" id="Address2" tabindex="4" />
          <span class="textfieldRequiredMsg">A value is required.</span></span>
          </div>
          <div>
          <span id="sprytextfield5">
          <label for="City">City: </label>
          <input type="text" name="City" id="City" tabindex="5" />
          <span class="textfieldRequiredMsg">A value is required.</span></span>
          </div>
          <div>
          <span id="sprytextfield6">
          <label for="Postcode">Postcode:</label>
          <input type="text" name="Postcode" id="Postcode" tabindex="6" />
          <span class="textfieldRequiredMsg">A value is required.</span></span>
          </div>
          <div>
          <span id="sprytextfield7">
          <label for="Phone">Prefered Contact number:</label>
          <input type="text" name="Phone" id="Phone" tabindex="7" />
          <span class="textfieldRequiredMsg">A value is required.</span></span>
          </div>
          <div>
          <span id="sprytextfield8">
          <label for="Email">Email Address</label>
          <input type="text" name="Email" id="Email" tabindex="8" />
          <span class="textfieldRequiredMsg"></span><span class="textfieldInvalidFormatMsg">Not a Valid E-mail Address</span></span>
          </div>
          <div id="select1">
          <label for="Quantity"> Number of children you would like to book for:</label>
          <select name="Quantity" id="Quantity" tabindex="9" class="Quantity" >
            <option>1</option>
            <option>2</option>
            <option>3</option>
          </select>
          </div>
          <div id="Child1Div">
          <span id="sprytextfield9">
          <label for="Child1">Child's Name:</label>
          <input type="text" name="Child1" id="Child1" tabindex="10" />
          <span class="textfieldRequiredMsg">A value is required.</span></span>
          <span id="spryselect2">
          <label for="Child1Age">Child's Age:</label>
          <select name="Child1Age" id="Child1Age" tabindex="11">
            <option value="10">10</option>
            <option value="11">11</option>
            <option value="12">12</option>
            <option value="13">13</option>
            <option value="14">14</option>
            <option value="15">15</option>
          </select>
          <span class="selectRequiredMsg">Please select an item.</span></span>
          </div>
      <div id="Child2Div">
        <span id="sprytextfield10">
          <label for="child2">Child's name:</label>
          <input type="text" name="child2" id="child2" />
          <span class="textfieldRequiredMsg">A value is required.</span></span>
          <span id="spryselect3">
          <label for="Child2Age">Child's Age:</label>
          <select name="Child2Age" id="Child2Age">
          <option>10</option>
            <option value="10">10</option>
            <option value="11">11</option>
            <option value="12">12</option>
            <option value="13">13</option>
            <option value="14">14</option>
            <option value="15">15</option>
          </select>
          <span class="selectRequiredMsg">Please select an item.</span></span>
    </div>
       <div id="Child3Div">
          <span id="sprytextfield11">
          <label for="Child3">Child's Name:</label>
          <input type="text" name="Child3" id="Child3" />
          <span class="textfieldRequiredMsg">A value is required.</span></span>
          <span id="spryselect4">
          <label for="Child3Age">Child's Age:</label>
          <select name="Child3Age" id="Child3Age">
            <option value="10">10</option>
            <option value="11">11</option>
            <option value="12">12</option>
            <option value="13">13</option>
            <option value="14">14</option>
            <option value="15">15</option>
          </select>
          <span class="selectRequiredMsg">Please select an item.</span></span>
        </div>
        <div>
          <span id="spryselect5">
          <label for="Type">Holiday Dates:</label>
          <select name="Type" id="Type" tabindex="12">
            <option value="Easter2week">2 Week Easter Holiday: April 2nd -  April 13th</option>
            <option value="April2nd1week">First Week: April 2nd - April 6th</option>
            <option value="April9th1week">Second Week: April 9th - April 13th</option>
            <option value="Easterspecial">Easter Special: 2 weeks</option>
          </select>
          <span class="selectRequiredMsg">Please select an item.</span></span>
              </div>
          <div id="Notes">
          <label for="Notes">Please use this area to let us know of any special requirements including medical and dietary needs that we may need to be aware of, if your child is applying with a friend please let us know here as well so we can try and make sure their on the same team: </label><br />
          <textarea name="Notes" id="Notes" cols="45" rows="5" tabindex="13"></textarea>
          </div>
          <input name="submit"  type="submit" id="submit" tabindex="14" value="Book Now" />
          </form>
          </div>
    FormMail.pl Code:
    #!/usr/bin/perl
    # FormMail                        Version 1.93                               #
    # Copyright 1995-2009 Matt Wright [email protected]                    #
    # Created 1995-06-09              Last Modified 2009-07-14                   #
    # Matt's Script Archive, Inc.:    http://www.scriptarchive.com/              #
    # COPYRIGHT NOTICE                                                           #
    # Copyright 1995-2009 Matthew M. Wright  All Rights Reserved.                #
    # FormMail may be used and modified free of charge by anyone so long as this #
    # copyright notice and the comments above remain intact.  By using this      #
    # code you agree to indemnify Matthew M. Wright from any liability that      #
    # might arise from its use.                                                  #
    # Selling the code for this program without prior written consent is         #
    # expressly forbidden.  In other words, please ask first before you try and  #
    # make money off of my program.                                              #
    # Obtain permission before redistributing this software over the Internet or #
    # in any other medium. In all cases copyright and header must remain intact. #
    # ACCESS CONTROL FIX: Peter D. Thompson Yezek                                #
    # XSS + REDIRECT FIX: Francesco Ongaro, Giovanni Pellerano & Antonio Parata  #
    #   v1.93             http://www.ush.it/team/ush/hack-formmail_192/adv.txt   #
    # Define Variables                                                           #
    #      Detailed Information Found In README File.                            #
    # $mailprog defines the location of your sendmail program on your unix       #
    # system. The flags -i and -t should be passed to sendmail in order to       #
    # have it ignore single dots on a line and to read message for recipients    #
    $mailprog = 'smtp.europe.secureserver.net -i -t';
    # @referers allows forms to be located only on servers which are defined     #
    # in this field.  This is a security fix to prevent others from using your   #
    # FormMail script on their web site.                                         #
    @referers = ('refuseboredom.com');
    # @recipients defines the e-mail addresses or domain names that e-mail can   #
    # be sent to.  This must be filled in correctly to prevent SPAM and allow    #
    # valid addresses to receive e-mail.  Read the documentation to find out how #
    # this variable works!!!  It is EXTREMELY IMPORTANT.                         #
    @recipients = ('^admin\@refuseboredom\.com');
    # ACCESS CONTROL FIX: Peter D. Thompson Yezek                                #
    # @valid_ENV allows the sysadmin to define what environment variables can    #
    # be reported via the env_report directive.  This was implemented to fix     #
    # the problem reported at http://www.securityfocus.com/bid/1187              #
    @valid_ENV = ('REMOTE_HOST','REMOTE_ADDR','REMOTE_USER','HTTP_USER_AGENT');
    # Done                                                                       #
    # Check Referring URL
    &check_url;
    # Retrieve Date
    &get_date;
    # Parse Form Contents
    &parse_form;
    # Check Required Fields
    &check_required;
    # Send E-Mail
    &send_mail;
    # Return HTML Page or Redirect User
    &return_html;
    # NOTE rev1.91: This function is no longer intended to stop abuse, that      #
    #    functionality is now embedded in the checks made on @recipients and the #
    #    recipient form field.                                                   #
    sub check_url {
        # Localize the check_referer flag which determines if user is valid.     #
        local($check_referer) = 0;
        # If a referring URL was specified, for each valid referer, make sure    #
        # that a valid referring URL was passed to FormMail.                     #
        if ($ENV{'HTTP_REFERER'}) {
            foreach $referer (@referers) {
                if ($ENV{'HTTP_REFERER'} =~ m|https?://([^/]*)$referer|i) {
                    $check_referer = 1;
                    last;
        else {
            $check_referer = 1;
        # If the HTTP_REFERER was invalid, send back an error.                   #
        if ($check_referer != 1) { &error('bad_referer') }
    sub get_date {
        # Define arrays for the day of the week and month of the year.           #
        @days   = ('Sunday','Monday','Tuesday','Wednesday',
                   'Thursday','Friday','Saturday');
        @months = ('January','February','March','April','May','June','July',
                   'August','September','October','November','December');
        # Get the current time and format the hour, minutes and seconds.  Add    #
        # 1900 to the year to get the full 4 digit year.                         #
        ($sec,$min,$hour,$mday,$mon,$year,$wday) = (localtime(time))[0,1,2,3,4,5,6];
        $time = sprintf("%02d:%02d:%02d",$hour,$min,$sec);
        $year += 1900;
        # Format the date.                                                       #
        $date = "$days[$wday], $months[$mon] $mday, $year at $time";
    sub parse_form {
        # Define the configuration associative array.                            #
        %Config = ('recipient','',          'subject','',
                   'email','',              'realname','',
                   'redirect','',           'bgcolor','',
                   'background','',         'link_color','',
                   'vlink_color','',        'text_color','',
                   'alink_color','',        'title','',
                   'sort','',               'print_config','',
                   'required','',           'env_report','',
                   'return_link_title','',  'return_link_url','',
                   'print_blank_fields','', 'missing_fields_redirect','');
        # Determine the form's REQUEST_METHOD (GET or POST) and split the form   #
        # fields up into their name-value pairs.  If the REQUEST_METHOD was      #
        # not GET or POST, send an error.                                        #
        if ($ENV{'REQUEST_METHOD'} eq 'GET') {
            # Split the name-value pairs
            @pairs = split(/&/, $ENV{'QUERY_STRING'});
        elsif ($ENV{'REQUEST_METHOD'} eq 'POST') {
            # Get the input
            read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
            # Split the name-value pairs
            @pairs = split(/&/, $buffer);
        else {
            &error('request_method');
        # For each name-value pair:                                              #
        foreach $pair (@pairs) {
            # Split the pair up into individual variables.                       #
            local($name, $value) = split(/=/, $pair);
            # Decode the form encoding on the name and value variables.          #
            # v1.92: remove null bytes                                           #
            $name =~ tr/+/ /;
            $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
            $name =~ tr/\0//d;
            $value =~ tr/+/ /;
            $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
            $value =~ tr/\0//d;
            # If the field name has been specified in the %Config array, it will #
            # return a 1 for defined($Config{$name}}) and we should associate    #
            # this value with the appropriate configuration variable.  If this   #
            # is not a configuration form field, put it into the associative     #
            # array %Form, appending the value with a ', ' if there is already a #
            # value present.  We also save the order of the form fields in the   #
            # @Field_Order array so we can use this order for the generic sort.  #
            if (defined($Config{$name})) {
                $Config{$name} = $value;
            else {
                if ($Form{$name} ne '') {
                    $Form{$name} = "$Form{$name}, $value";
                else {
                    push(@Field_Order,$name);
                    $Form{$name} = $value;
        # The next six lines remove any extra spaces or new lines from the       #
        # configuration variables, which may have been caused if your editor     #
        # wraps lines after a certain length or if you used spaces between field #
        # names or environment variables.                                        #
        $Config{'required'} =~ s/(\s+|\n)?,(\s+|\n)?/,/g;
        $Config{'required'} =~ s/(\s+)?\n+(\s+)?//g;
        $Config{'env_report'} =~ s/(\s+|\n)?,(\s+|\n)?/,/g;
        $Config{'env_report'} =~ s/(\s+)?\n+(\s+)?//g;
        $Config{'print_config'} =~ s/(\s+|\n)?,(\s+|\n)?/,/g;
        $Config{'print_config'} =~ s/(\s+)?\n+(\s+)?//g;
        # Split the configuration variables into individual field names.         #
        @Required = split(/,/,$Config{'required'});
        @Env_Report = split(/,/,$Config{'env_report'});
        @Print_Config = split(/,/,$Config{'print_config'});
        # ACCESS CONTROL FIX: Only allow ENV variables in @valid_ENV in          #
        # @Env_Report for security reasons.                                      #
        foreach $env_item (@Env_Report) {
            foreach $valid_item (@valid_ENV) {
                if ( $env_item eq $valid_item ) { push(@temp_array, $env_item) }
        @Env_Report = @temp_array;
    sub check_required {
        # Localize the variables used in this subroutine.                        #
        local($require, @error);
        # The following insures that there were no newlines in any fields which  #
        # will be used in the header.                                            #
        if ($Config{'subject'} =~ /(\n|\r)/m || $Config{'email'} =~ /(\n|\r)/m ||
            $Config{'realname'} =~ /(\n|\r)/m || $Config{'recipient'} =~ /(\n|\r)/m) {
            &error('invalid_headers');
        # Fix XSS + HTTP Header Injection for v1.93
        foreach $lfield ('redirect', 'return_link_url') {
            # Strip new lines
            $Config{$lfield} =~ s/(\n|\r)//mg;
            # Only allow certain handlers to avoid javascript:/data: tricks
            if ($Config{$lfield} !~ /^\s*\// &&
                $Config{$lfield} !~ /^\s*(http|https|ftp):\/\//) {
                $Config{$lfield} = '';
        if (!$Config{'recipient'}) {
            if (!defined(%Form)) { &error('bad_referer') }
            else                 { &error('no_recipient') }
        else {
            # This block of code requires that the recipient address end with    #
            # a valid domain or e-mail address as defined in @recipients.        #
            foreach $send_to (split(/,/,$Config{'recipient'})) {
                foreach $recipient (@recipients) {
                    if ($send_to =~ /$recipient$/i) {
                        push(@send_to,$send_to); last;
            if ($#send_to < 0) { &error('no_recipient') }
            $Config{'recipient'} = join(',',@send_to);
        # For each require field defined in the form:                            #
        foreach $require (@Required) {
            # If the required field is the email field, the syntax of the email  #
            # address if checked to make sure it passes a valid syntax.          #
            if ($require eq 'email' && !&check_email($Config{$require})) {
                push(@error,$require);
            # Otherwise, if the required field is a configuration field and it   #
            # has no value or has been filled in with a space, send an error.    #
            elsif (defined($Config{$require})) {
                if ($Config{$require} eq '') { push(@error,$require); }
            # If it is a regular form field which has not been filled in or      #
            # filled in with a space, flag it as an error field.                 #
            elsif (!defined($Form{$require}) || $Form{$require} eq '') {
                push(@error,$require);
        # If any error fields have been found, send error message to the user.   #
        if (@error) { &error('missing_fields', @error) }
    sub return_html {
        # Local variables used in this subroutine initialized.                   #
        local($key,$sort_order,$sorted_field);
        # Now that we have finished using form values for any e-mail related     #
        # reasons, we will convert all of the form fields and config values      #
        # to remove any cross-site scripting security holes.                     #
        local($field);
        foreach $field (keys %Config) {
            $safeConfig{$field} = &clean_html($Config{$field});
        foreach $field (keys %Form) {
            $Form{$field} = &clean_html($Form{$field});
        # If redirect option is used, print the redirectional location header.   #
        if ($Config{'redirect'}) {
            print "Location: $safeConfig{'redirect'}\n\n";
        # Otherwise, begin printing the response page.                           #
        else {
            # Print HTTP header and opening HTML tags.                           #
            print "Content-type: text/html\n\n";
            print "<html>\n <head>\n";
            # Print out title of page                                            #
            if ($Config{'title'}) { print "<title>$safeConfig{'title'}</title>\n" }
            else                  { print "<title>Thank You</title>\n"        }
            print " </head>\n <body";
            # Get Body Tag Attributes                                            #
            &body_attributes;
            # Close Body Tag                                                     #
            print ">\n  <center>\n";
            # Print custom or generic title.                                     #
            if ($Config{'title'}) { print "<h1>$safeConfig{'title'}</h1>\n" }
            else { print "<h1>Thank You For Filling Out This Form</h1>\n" }
            print "</center>\n";
            print "Below is what you submitted to $safeConfig{'recipient'} on ";
            print "$date<p><hr size=1 width=75\%><p>\n";
            # If a sort order is specified, sort the form fields based on that.  #
            if ($Config{'sort'} =~ /^order:.*,.*/) {
                # Set the temporary $sort_order variable to the sorting order,   #
                # remove extraneous line breaks and spaces, remove the order:    #
                # directive and split the sort fields into an array.             #
                $sort_order = $Config{'sort'};
                $sort_order =~ s/(\s+|\n)?,(\s+|\n)?/,/g;
                $sort_order =~ s/(\s+)?\n+(\s+)?//g;
                $sort_order =~ s/order://;
                @sorted_fields = split(/,/, $sort_order);
                # For each sorted field, if it has a value or the print blank    #
                # fields option is turned on print the form field and value.     #
                foreach $sorted_field (@sorted_fields) {
                    local $sfname = &clean_html($sorted_field);
                    if ($Config{'print_blank_fields'} || $Form{$sorted_field} ne '') {
                        print "<b>$sfname:</b> $Form{$sorted_field}<p>\n";
            # Otherwise, use the order the fields were sent, or alphabetic.      #
            else {
                # Sort alphabetically if requested.
                if ($Config{'sort'} eq 'alphabetic') {
                    @Field_Order = sort @Field_Order;
                # For each form field, if it has a value or the print blank      #
                # fields option is turned on print the form field and value.     #
                foreach $field (@Field_Order) {
                    local $fname = &clean_html($field);
                    if ($Config{'print_blank_fields'} || $Form{$field} ne '') {
                        print "<b>$fname:</b> $Form{$field}<p>\n";
            print "<p><hr size=1 width=75%><p>\n";
            # Check for a Return Link and print one if found.                    #
            if ($Config{'return_link_url'} && $Config{'return_link_title'}) {
                print "<ul>\n";
                print "<li><a href=\"$safeConfig{'return_link_url'}\">$safeConfig{'return_link_title'}</a>\n";
                print "</ul>\n";
            # Print the page footer.                                             #
            print <<"(END HTML FOOTER)";
            <hr size=1 width=75%><p>
            <center><font size=-1><a href="http://www.scriptarchive.com/formmail.html">FormMail</a> V1.93 &copy; 1995 - 2009  Matt Wright<br>
    A Free Product of <a href="http://www.scriptarchive.com/">Matt's Script Archive, Inc.</a></font></center>
            </body>
           </html>
    (END HTML FOOTER)
    sub send_mail {
        # Localize variables used in this subroutine.                            #
        local($print_config,$key,$sort_order,$sorted_field,$env_report);
        # Open The Mail Program
        open(MAIL,"|$mailprog");
        print MAIL "To: $Config{'recipient'}\n";
        print MAIL "From: $Config{'email'} ($Config{'realname'})\n";
        # Check for Message Subject
        if ($Config{'subject'}) { print MAIL "Subject: $Config{'subject'}\n\n" }
        else                    { print MAIL "Subject: WWW Form Submission\n\n" }
        print MAIL "Below is the result of your feedback form.  It was submitted by\n";
        print MAIL "$Config{'realname'} ($Config{'email'}) on $date\n";
        print MAIL "-" x 75 . "\n\n";
        if (@Print_Config) {
            foreach $print_config (@Print_Config) {
                if ($Config{$print_config}) {
                    print MAIL "$print_config: $Config{$print_config}\n\n";
        # If a sort order is specified, sort the form fields based on that.      #
        if ($Config{'sort'} =~ /^order:.*,.*/) {
            # Remove extraneous line breaks and spaces, remove the order:        #
            # directive and split the sort fields into an array.                 #
            local $sort_order = $Config{'sort'};
            $sort_order =~ s/(\s+|\n)?,(\s+|\n)?/,/g;
            $sort_order =~ s/(\s+)?\n+(\s+)?//g;
            $sort_order =~ s/order://;
            @sorted_fields = split(/,/, $sort_order);
            # For each sorted field, if it has a value or the print blank        #
            # fields option is turned on print the form field and value.         #
            foreach $sorted_field (@sorted_fields) {
                if ($Config{'print_blank_fields'} || $Form{$sorted_field} ne '') {
                    print MAIL "$sorted_field: $Form{$sorted_field}\n\n";
        # Otherwise, print fields in order they were sent or alphabetically.     #
        else {
            # Sort alphabetically if specified:                                  #
            if ($Config{'sort'} eq 'alphabetic') {
                @Field_Order = sort @Field_Order;
            # For each form field, if it has a value or the print blank          #
            # fields option is turned on print the form field and value.         #
            foreach $field (@Field_Order) {
                if ($Config{'print_blank_fields'} || $Form{$field} ne '') {
                    print MAIL "$field: $Form{$field}\n\n";
        print MAIL "-" x 75 . "\n\n";
        # Send any specified Environment Variables to recipient.                 #
        foreach $env_report (@Env_Report) {
            if ($ENV{$env_report}) {
                print MAIL "$env_report: $ENV{$env_report}\n";
        close (MAIL);
    sub check_email {
        # Initialize local email variable with input to subroutine.              #
        $email = $_[0];
        # If the e-mail address contains:                                        #
        if ($email =~ /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/ ||
            # the e-mail address contains an invalid syntax.  Or, if the         #
            # syntax does not match the following regular expression pattern     #
            # it fails basic syntax verification.                                #
            $email !~ /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z0-9]+)(\]?)$/) {
            # Basic syntax requires:  one or more characters before the @ sign,  #
            # followed by an optional '[', then any number of letters, numbers,  #
            # dashes or periods (valid domain/IP characters) ending in a period  #
            # and then 2 or 3 letters (for domain suffixes) or 1 to 3 numbers    #
            # (for IP addresses).  An ending bracket is also allowed as it is    #
            # valid syntax to have an email address like: user@[255.255.255.0]   #
            # Return a false value, since the e-mail address did not pass valid  #
            # syntax.                                                            #
            return 0;
        else {
            # Return a true value, e-mail verification passed.                   #
            return 1;
    # This was added into v1.91 to further secure the recipients array.  Now, by #
    # default it will assume that valid recipients include only users with       #
    # usernames A-Z, a-z, 0-9, _ and - that match your domain exactly.  If this  #
    # is not what you want, you should read more detailed instructions regarding #
    # the configuration of the @recipients variable in the documentation.        #
    sub fill_recipients {
        local(@domains) = @_;
        local($domain,@return_recips);
        foreach $domain (@domains) {
            if ($domain =~ /^\d+\.\d+\.\d+\.\d+$/) {
                $domain =~ s/\./\\\./g;
                push(@return_recips,'^[\w\-\.]+\@\[' . $domain . '\]');
            else {
                $domain =~ s/\./\\\./g;
                $domain =~ s/\-/\\\-/g;
                push(@return_recips,'^[\w\-\.]+\@' . $domain);
        return @return_recips;
    # This function will convert <, >, & and " to their HTML equivalents.        #
    sub clean_html {
        local $value = $_[0];
        $value =~ s/\&/\&amp;/g;
        $value =~ s/</\&lt;/g;
        $value =~ s/>/\&gt;/g;
        $value =~ s/"/\&quot;/g;
        return $value;
    sub body_attributes {
        # Check for Background Color
        if ($Config{'bgcolor'}) { print " bgcolor=\"$safeConfig{'bgcolor'}\"" }
        # Check for Background Image
        if ($Config{'background'}) { print " background=\"$safeConfig{'background'}\"" }
        # Check for Link Color
        if ($Config{'link_color'}) { print " link=\"$safeConfig{'link_color'}\"" }
        # Check for Visited Link Color
        if ($Config{'vlink_color'}) { print " vlink=\"$safeConfig{'vlink_color'}\"" }
        # Check for Active Link Color
        if ($Config{'alink_color'}) { print " alink=\"$safeConfig{'alink_color'}\"" }
        # Check for Body Text Color
        if ($Config{'text_color'}) { print " text=\"$safeConfig{'text_color'}\"" }
    sub error {
        # Localize variables and assign subroutine input.                        #
        local($error,@error_fields) = @_;
        local($host,$missing_field,$missing_field_list);
        if ($error eq 'bad_referer') {
            if ($ENV{'HTTP_REFERER'} =~ m|^https?://([\w\.]+)|i) {
                $host = $1;
                my $referer = &clean_html($ENV{'HTTP_REFERER'});
                print <<"(END ERROR HTML)";
    Content-type: text/html
    <html>
    <head>
      <title>Bad Referrer - Access Denied</title>
    </head>
    <body bgcolor=#FFFFFF text=#000000>
      <center>
       <table border=0 width=600 bgcolor=#9C9C9C>
        <tr><th><font size=+2>Bad Referrer - Access Denied</font></th></tr>
       </table>
       <table border=0 width=600 bgcolor=#CFCFCF>
        <tr><td>The form attempting to use
         <a href="http://www.scriptarchive.com/formmail.html">FormMail</a>
         resides at <tt>$referer</tt>, which is not allowed to access
         this cgi script.<p>
         If you are attempting to configure FormMail to run with this form, you need
         to add the following to \@referers, explained in detail in the
         <a href="http://www.scriptarchive.com/readme/formmail.html">README</a> file.<p>
         Add <tt>'$host'</tt> to your <tt><b>\@referers</b></tt> array.<hr size=1>
         <center><font size=-1>
          <a href="http://www.scriptarchive.com/formmail.html">FormMail</a> V1.93 &copy; 1995 - 2009  Matt Wright<br>
          A Free Product of <a href="http://www.scriptarchive.com/">Matt's Script Archive, Inc.</a>
         </font></center>
        </td></tr>
       </table>
      </center>
    </body>
    </html>
    (END ERROR HTML)
            else {
                print <<"(END ERROR HTML)";
    Content-type: text/html
    <html>
    <head>
      <title>FormMail v1.93</title>
    </head>
    <body bgcolor=#FFFFFF text=#000000>
      <center>
       <table border=0 width=600 bgcolor=#9C9C9C>
        <tr><th><font size=+2>FormMail</font></th></tr>
       </table>
       <table border=0 width=600 bgcolor=#CFCFCF>
        <tr><th><tt><font size=+1>Copyright 1995 - 2009 Matt Wright<br>
            Version 1.93 - Released June 25, 2009<br>
            A Free Product of <a href="http://www.scriptarchive.com/">Matt's Script Archive,
            Inc.</a></font></tt></th></tr>
       </table>
      </center>
    </body>
    </html>
    (END ERROR HTML)
        elsif ($error eq 'request_method') {
                print <<"(END ERROR HTML)";
    Content-type: text/html
    <html>
    <head>
      <title>Error: Request Method</title>
    </head>
    <body bgcolor=#FFFFFF text=#000000>
      <center>
       <table border=0 width=600 bgcolor=#9C9C9C>
        <tr><th><font size=+2>Error: Request Method</font></th></tr>
       </table>
       <table border=0 width=600 bgcolor=#CFCFCF>
        <tr><td>The Request Method of the Form you submitted did not match
         either <tt>GET</tt> or <tt>POST</tt>.  Please check the form and make sure the
         <tt>method=</tt> statement is in upper case and matches <tt>GET</tt> or <tt>POST</tt>.<p>
         <center><font size=-1>
          <a href="http://www.scriptarchive.com/formmail.html">FormMail</a> V1.93 &copy; 1995 - 2009  Matt Wright<br>
          A Free Product of <a href="http://www.scriptarchive.com/">Matt's Script Archive, Inc.</a>
         </font></center>
        </td></tr>
       </table>
      </center>
    </body>
    </html>
    (END ERROR HTML)
        elsif ($error eq 'no_recipient') {
                print <<"(END ERROR HTML)";
    Content-type: text/html
    <html>
    <head>
      <title>Error: Bad/No Recipient</title>
    </head>
    <body bgcolor=#FFFFFF text=#000000>
      <center>
       <table border=0 width=600 bgcolor=#9C9C9C>
        <tr><th><font size=+2>Error: Bad/No Recipient</font></th></tr>
       </table>
       <table border=0 width=600 bgcolor=#CFCFCF>
        <tr><td>There was no recipient or an invalid recipient specified in the data sent to FormMail.  Please
         make sure you have filled in the <tt>recipient</tt> form field with an e-mail
         address that has been configured in <tt>\@recipients</tt>.  More information on filling in <tt>recipient</tt> form fields and variables can be
         found in the <a href="http://www.scriptarchive.com/readme/formmail.html">README</a> file.<hr size=1>
         <center><font size=-1>
          <a href="http://www.scriptarchive.com/formmail.html">FormMail</a> V1.93 &copy; 1995 - 2009  Matt Wright<br>
          A Free Product of <a href="http://www.scriptarchive.com/">Matt's Script Archive, Inc.</a>
         </font></center>
        </td></tr>
       </table>
      </center>
    </body>
    </html>
    (END ERROR HTML)
        elsif ($error eq 'invalid_headers') {
                print <<"(END ERROR HTML)";
    Content-type: text/html
    <html>
    <head>
      <title>Error: Bad Header Fields</title>
    </head>
    <body bgcolor=#FFFFFF text=#000000>
      <center>
       <table border=0 width=600 bgcolor=#9C9C9C>
        <tr><th><font size=+2>Error: Bad Header Fields</font></th></tr>
       </table>
       <table border=0 width=600 bgcolor=#CFCFCF>
        <tr><td>The header fields, which include <tt>recipient</tt>, <tt>email</tt>, <tt>realname</tt> and <tt>subject</tt> were
         filled in with invalid values. You may not include any newline characters in these parameters.
         More information on filling in these form fields and variables can be
         found in the <a href="http://www.scriptarchive.com/readme/formmail.html">README</a> file.<hr size=1>
         <center><font size=-1>
          <a href="http://www.scriptarchive.com/formmail.html">FormMail</a> V1.93 &copy; 1995 - 2009  Matt Wright<br>
          A Free Product of <a href="http://www.scriptarchive.com/">Matt's Script Archive, Inc.</a>
         </font></center>
        </td></tr>
       </table>
      </center>
    </body>
    </html>
    (END ERROR HTML)
        elsif ($error eq 'missing_fields') {
            if ($Config{'missing_fields_redirect'}) {
                print "Location: " . &clean_html($Config{'missing_fields_redirect'}) . "\n\n";
            else {
                foreach $missing_field (@error_fields) {
                    $missing_field_list .= "<li>" . &clean_html($missing_field) . "\n";
                print <<"(END ERROR HTML)";
    Content-type: text/html
    <html>
    <head>
      <title>Error: Blank Fields</title>
    </head>
      <center>
       <table border=0 width=600 bgcolor=#9C9C9C>
        <tr><th><font size=+2>Error: Blank Fields</font></th></tr>
       </table>
       <table border=0 width=600 bgcolor=#CFCFCF>
        <tr><td>The following fields were left blank in your submission form:<p>
         <ul>
    $missing_field_list
         </ul><br>
         These fields must be filled in before you can successfully submit the form.<p>
         Please use your browser's back button to return to the form and try again.<hr size=1>
         <center><font size=-1>
          <a href="http://www.scriptarchive.com/formmail.html">FormMail</a> V1.93 &copy; 1995 - 2009  Matt Wright<br>
          A Free Product of <a href="http://www.scriptarchive.com/">Matt's Script Archive, Inc.</a>
         </font></center>
        </td></tr>
       </table>
      </center>
    </body>
    </html>
    (END ERROR HTML)
        exit;

    I haven't used  Matt Wright's scripts in this century, but I'm pretty sure that Perl still needs to go into your CGI bin and the permissions level (chmod) must be set to 755 or possibly 777 for the script to read, write & execute.
    Nancy O.
    Alt-Web Design & Publishing
    Web | Graphics | Print | Media  Specialists 
    http://alt-web.com/
    http://twitter.com/altweb

  • FtpAdapter not reading files consistently

    I'm using Ftp Adapter to read files from ftps server. It is not reading files consistently. All of a sudden it stops reading the files. Once I restart the run time instance, it starts reading again. There are no errors in logs.
    The wsdl configurations and oc4j-ra.xml is given below. Is there any configurations to be done for clustered environment? There are 2 run time instances trying to read files from same directory in the same ftps server.
    WSDL
    <message name="Get_msg">
    <part name="opaque" element="opaque:opaqueElement" />
    </message>
    <portType name="Get_ptt">
    <operation name="Get">
    <input message="tns:Get_msg" />
    </operation>
    </portType>
    <binding name="Get_binding" type="tns:Get_ptt">
    <pc:inbound_binding />
    <operation name="Get">
    <jca:operation FileType="ascii" PhysicalDirectory="/users/PCGFTPS/test/inbound/272" ActivationSpec="oracle.tip.adapter.ftp.inbound.FTPActivationSpec" DeleteFile="true" IncludeFiles="saf272\.d.*\.t.*c.*" PollingFrequency="5" MinimumAge="0" OpaqueSchema="true" />
    <input>
    <jca:header message="hdr:InboundHeader_msg" part="inboundHeader" />
    </input>
    </operation>
    </binding>
    <service name="readFileFromFTPS">
    <port name="Get_pt" binding="tns:Get_binding">
    <jca:address location="eis/Ftp/edi/FtpAdapter" UIincludeWildcard="saf272.d*.t*c*" />
    </port>
    </service>
    <plt:partnerLinkType name="Get_plt">
    <plt:role name="Get_role">
    <plt:portType name="tns:Get_ptt" />
    </plt:role>
    </plt:partnerLinkType>
    </definitions>
    oc4j-ra.xml
    <config-property name="host" value="ftps.qa.com"/>
              <config-property name="port" value="21"/>
              <config-property name="username" value="ftps"/>
              <config-property name="password" value="8888"/>
              <config-property name="ftpAbsolutePathBegin" value="/"/>
              <config-property name="ftpPathSeparator" value="/"/>
              <config-property name="changeDirectory" value="false"/>
              <config-property name="enforceFileTypeFromSpec" value="false"/>
              <config-property name="keepConnections" value="true"/>
              <config-property name="keepAlive" value="false"/>
              <config-property name="serverType" value="win"/>
              <config-property name="serverLocaleLanguage" value=""/>
              <config-property name="serverLocaleCountry" value=""/>
              <config-property name="serverLocaleVariant" value=""/>
              <config-property name="serverEncoding" value=""/>
              <config-property name="defaultDateFormat" value="MMM d yyyy"/>
              <config-property name="recentDateFormat" value="MMM d HH:mm"/>
              <config-property name="serverTimeZone" value=""/>
              <config-property name="listParserKey" value="WIN"/>
              <config-property name="timeParserKey" value="default"/>
              <config-property name="useFtps" value="true"/>
              <config-property name="useImplicitSSL" value="false"/>
              <config-property name="walletLocation" value="/tools/da/oracle/swinstall/product/10.1.3.1/OAS11/opmn/conf/ssl.wlt/interfaces/ewallet.p12"/>
              <config-property name="walletPassword" value="oc4jadmin"/>
              <config-property name="channelMask" value="both"/>
              <config-property name="securePort" value="990"/>
              <config-property name="keyStoreProviderName" value="oracle.security.pki.OraclePKIProvider"/>
              <config-property name="keystoreType" value="PKCS12"/>
              <config-property name="keystoreAlgorithm" value="OracleX509"/>
              <config-property name="enableCipherSuits" value=""/>
              <config-property name="pkiProvider" value="OraclePKI"/>
              <config-property name="jsseProvider" value="OracleJSSE"/>
              <config-property name="proxyHost" value=""/>
              <config-property name="proxyPort" value=""/>
              <config-property name="proxyUsername" value=""/>
              <config-property name="proxyPassword" value=""/>
              <config-property name="proxyType" value=""/>
              <config-property name="proxyDefinitionFile" value=""/>
              <config-property name="useProxy" value="false"/>
              <config-property name="useSftp" value="false"/>
              <config-property name="authenticationType" value="password"/>
              <config-property name="preferredKeyExchangeAlgorithm" value="diffie-hellman-group1-sha1"/>
              <config-property name="preferredCompressionAlgorithm" value="none"/>
              <config-property name="preferredDataIntegrityAlgorithm" value="hmac-md5"/>
              <config-property name="preferredPKIAlgorithm" value="ssh-rsa"/>
              <config-property name="privateKeyFile" value=""/>
              <config-property name="preferredCipherSuite" value="blowfish-cbc"/>
              <config-property name="transportProvider" value="socket"/>
              <connection-pooling use="none">
              </connection-pooling>
              <security-config use="none">
              </security-config>

    The fact that two instances are reading the same directory doesn't look that good to me. In parallel, the DB Adapter, polling for new records must not have two instances polling for the same table! Another issue could be problems on the FTP server itself. FTP connections are in Passive mode. It could be that the FTP server runs into portnumbers that are blocked in the firewall. This can be read from FTP logging on the FTP server itself.

  • CONNECT //.*:443 is getting blocked...and I don't know why...

    I have a very basic ACL...
    version 3.0;
    acl "es-internal";
    allow (read, execute, info) user = "anyone";
    deny (list, write, delete) user = "anyone";
    acl "default";^M
    authenticate (user,group) {^M
    database = "default";^M
    method = "basic";^M
    prompt = "Sun Java System Web Proxy Server";^M
    };^M
    allow (read,execute,info) ^M
    (user = "all");^M
    ^M
    allow (write,delete,list) ^M
    (user = "all");^M
    ^M
    allow (all) ^M
    (user = "anyone") and^M
    (ip = "x.x.x.*, y.y.y.*");^M
    ^M
    Regular http traffic works fine but CONNECT://.*:443 is not working...or CONNECT://.*:444 for that matter. Here is the error in the log...
    (for host x.x.x.x trying to CONNECT connect://webmail.wiu.edu:443, acl-state reports: HTTP5191: access of connect://webmail.wiu.edu:443 denied by ACL default directive 3)
    The admin manual says to put the more general ACL statements at the top. So mine says no matter where you come from...you have to authenticate against our LDAP directory...unless you are on subnet x.x.x.* or y.y.y.*, these subnets are allowed open access to the proxy. Why does the log tell me that directive 3 is blocking acess when it should be allowed through by directive 1 or 2?
    Thanks,
    Matt

    Here it is...
    # You can edit this file, but comments and formatting changes
    # might be lost when the admin server makes changes.
    Init fn="init-proxy" timeout="300" timeout-2="15"
    Init rotate-start="0000" rotate-interval="1440" fn="flex-rotate-init"
    Init profiling="on" fn="stats-init"
    Init cache-size="1024" expire="1200" negative-dns-cache="yes" fn="host-dns-cache-init"
    Init access="$accesslog" format.access="%Ses->client.ip% - %Req->vars.auth-user% [%SYSDATE%] \"%Req->reqpb.clf-request%\" %Req->srvhdrs.clf-status% %Req->vars.p2c-cl% %Req->vars.remote-status% %Req->vars.r2p-cl% %Req->headers.content-length% %Req->vars.p2r-cl% %Req->vars.c2p-hl% %Req->vars.p2c-hl% %Req->vars.p2r-hl% %Req->vars.r2p-hl% %Req->vars.xfer-time%" fn="flex-init"
    <Object name="default">
    AuthTrans fn="match-browser" browser=".*MSIE.*" ssl-unclean-shutdown="true"
    NameTrans fn="assign-name" name="stats-xml" from="(/stats-xml|/stats-xml/.*)"
    PathCheck fn="url-check"
    PathCheck fn="check-acl" acl="default"
    ObjectType fn="block-ip"
    ObjectType fn="ftp-config" mode="PORT"
    ObjectType fn="cache-enable" cache-auth="1" cache-https="1"
    Service fn="deny-service"
    AddLog fn="flex-log" name="access" iponly="1"
    </Object>
    <Object name="file">
    PathCheck fn="unix-uri-clean"
    PathCheck fn="find-index" index-names="index.html"
    ObjectType fn="type-by-extension"
    ObjectType fn="force-type" type="text/plain"
    Service fn="send-file"
    </Object>
    <Object ppath="ftp://.*">
    ObjectType fn="cache-enable" query-maxlen="10" log-report="off"
    ObjectType fn="cache-setting" lm-factor="0.10" max-uncheck="7200"
    Service fn="proxy-retrieve"
    </Object>
    <Object ppath="http://.*">
    ObjectType fn="cache-enable" query-maxlen="10" log-report="off"
    ObjectType fn="cache-setting" lm-factor="0.10" max-uncheck="7200"
    Service fn="proxy-retrieve" method="*"
    </Object>
    <Object ppath="https://.*">
    Service fn="proxy-retrieve"
    </Object>
    <Object ppath="gopher://.*">
    ObjectType fn="cache-enable" query-maxlen="10" log-report="off"
    ObjectType fn="cache-setting" lm-factor="0.10" max-uncheck="7200"
    Service fn="proxy-retrieve"
    </Object>
    <Object ppath="connect://.*:443">
    Service fn="connect" method="CONNECT"
    </Object>
    <Object ppath="connect://.*:444">
    Service fn="connect" method="CONNECT"
    </Object>
    <Object ppath="connect://.*:563">
    Service fn="connect" method="CONNECT"
    </Object>
    <Object ppath="connect://.*:7071">
    Service fn="connect" method="CONNECT"
    </Object>
    <Object ppath="connect://.*:8080">
    Service fn="connect" method="CONNECT"
    </Object>
    <Object name="stats-xml">
    Service fn="stats-xml"
    </Object>

Maybe you are looking for