mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* added files:
* lib/soap/header/* * lib/soap/rpc/httpserver.rb * lib/wsdl/soap/cgiStubCreator.rb * lib/wsdl/soap/classDefCreator.rb * lib/wsdl/soap/classDefCreatorSupport.rb * lib/wsdl/soap/clientSkeltonCreator.rb * lib/wsdl/soap/driverCreator.rb * lib/wsdl/soap/mappingRegistryCreator.rb * lib/wsdl/soap/methodDefCreator.rb * lib/wsdl/soap/servantSkeltonCreator.rb * lib/wsdl/soap/standaloneServerStubCreator.rb * lib/wsdl/xmlSchema/enumeration.rb * lib/wsdl/xmlSchema/simpleRestriction.rb * lib/wsdl/xmlSchema/simpleType.rb * lib/xsd/codegen/* * lib/xsd/codegen.rb * sample/soap/authheader/* * sample/soap/raa2.4/* * sample/soap/ssl/* * sample/soap/swa/* * sample/soap/whois.rb * sample/wsdl/raa2.4/* * test/soap/header/* * test/soap/ssl/* * test/soap/struct/* * test/soap/swa/* * test/soap/wsdlDriver/* * test/wsdl/multiplefault.wsdl * test/wsdl/simpletype/* * test/wsdl/test_multiplefault.rb * modified files: * lib/soap/baseData.rb * lib/soap/element.rb * lib/soap/generator.rb * lib/soap/netHttpClient.rb * lib/soap/parser.rb * lib/soap/property.rb * lib/soap/soap.rb * lib/soap/streamHandler.rb * lib/soap/wsdlDriver.rb * lib/soap/wsdlDriver.rb * lib/soap/encodingstyle/handler.rb * lib/soap/encodingstyle/literalHandler.rb * lib/soap/encodingstyle/soapHandler.rb * lib/soap/mapping/factory.rb * lib/soap/mapping/mapping.rb * lib/soap/mapping/registry.rb * lib/soap/mapping/rubytypeFactory.rb * lib/soap/mapping/wsdlRegistry.rb * lib/soap/rpc/cgistub.rb * lib/soap/rpc/driver.rb * lib/soap/rpc/proxy.rb * lib/soap/rpc/router.rb * lib/soap/rpc/soaplet.rb * lib/soap/rpc/standaloneServer.rb * lib/wsdl/data.rb * lib/wsdl/definitions.rb * lib/wsdl/operation.rb * lib/wsdl/parser.rb * lib/wsdl/soap/definitions.rb * lib/wsdl/xmlSchema/complexContent.rb * lib/wsdl/xmlSchema/complexType.rb * lib/wsdl/xmlSchema/data.rb * lib/wsdl/xmlSchema/parser.rb * lib/wsdl/xmlSchema/schema.rb * lib/xsd/datatypes.rb * lib/xsd/qname.rb * sample/soap/sampleStruct/server.rb * sample/wsdl/amazon/AmazonSearch.rb * sample/wsdl/amazon/AmazonSearchDriver.rb * test/soap/test_property.rb * test/soap/calc/test_calc_cgi.rb * test/wsdl/test_emptycomplextype.rb * summary * add SOAP Header mustUnderstand support. * add HTTP client SSL configuration and Cookies support (works completely with http-access2). * add header handler for handling sending/receiving SOAP Header. * map Ruby's anonymous Struct to common SOAP Struct in SOAP Object Model. it caused error. * add WSDL simpleType support to restrict lexical value space. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6565 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
0d6fa996d9
commit
df731e37a1
116 changed files with 7270 additions and 2953 deletions
1
sample/soap/ssl/files/README
Normal file
1
sample/soap/ssl/files/README
Normal file
|
@ -0,0 +1 @@
|
|||
* certificates and keys in this directory is copied from http-access2 test.
|
23
sample/soap/ssl/files/ca.cert
Normal file
23
sample/soap/ssl/files/ca.cert
Normal file
|
@ -0,0 +1,23 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIID0DCCArigAwIBAgIBADANBgkqhkiG9w0BAQUFADA8MQswCQYDVQQGDAJKUDES
|
||||
MBAGA1UECgwJSklOLkdSLkpQMQwwCgYDVQQLDANSUlIxCzAJBgNVBAMMAkNBMB4X
|
||||
DTA0MDEzMDAwNDIzMloXDTM2MDEyMjAwNDIzMlowPDELMAkGA1UEBgwCSlAxEjAQ
|
||||
BgNVBAoMCUpJTi5HUi5KUDEMMAoGA1UECwwDUlJSMQswCQYDVQQDDAJDQTCCASIw
|
||||
DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANbv0x42BTKFEQOE+KJ2XmiSdZpR
|
||||
wjzQLAkPLRnLB98tlzs4xo+y4RyY/rd5TT9UzBJTIhP8CJi5GbS1oXEerQXB3P0d
|
||||
L5oSSMwGGyuIzgZe5+vZ1kgzQxMEKMMKlzA73rbMd4Jx3u5+jdbP0EDrPYfXSvLY
|
||||
bS04n2aX7zrN3x5KdDrNBfwBio2/qeaaj4+9OxnwRvYP3WOvqdW0h329eMfHw0pi
|
||||
JI0drIVdsEqClUV4pebT/F+CPUPkEh/weySgo9wANockkYu5ujw2GbLFcO5LXxxm
|
||||
dEfcVr3r6t6zOA4bJwL0W/e6LBcrwiG/qPDFErhwtgTLYf6Er67SzLyA66UCAwEA
|
||||
AaOB3DCB2TAPBgNVHRMBAf8EBTADAQH/MDEGCWCGSAGG+EIBDQQkFiJSdWJ5L09w
|
||||
ZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBRJ7Xd380KzBV7f
|
||||
USKIQ+O/vKbhDzAOBgNVHQ8BAf8EBAMCAQYwZAYDVR0jBF0wW4AUSe13d/NCswVe
|
||||
31EiiEPjv7ym4Q+hQKQ+MDwxCzAJBgNVBAYMAkpQMRIwEAYDVQQKDAlKSU4uR1Iu
|
||||
SlAxDDAKBgNVBAsMA1JSUjELMAkGA1UEAwwCQ0GCAQAwDQYJKoZIhvcNAQEFBQAD
|
||||
ggEBAIu/mfiez5XN5tn2jScgShPgHEFJBR0BTJBZF6xCk0jyqNx/g9HMj2ELCuK+
|
||||
r/Y7KFW5c5M3AQ+xWW0ZSc4kvzyTcV7yTVIwj2jZ9ddYMN3nupZFgBK1GB4Y05GY
|
||||
MJJFRkSu6d/Ph5ypzBVw2YMT/nsOo5VwMUGLgS7YVjU+u/HNWz80J3oO17mNZllj
|
||||
PvORJcnjwlroDnS58KoJ7GDgejv3ESWADvX1OHLE4cRkiQGeLoEU4pxdCxXRqX0U
|
||||
PbwIkZN9mXVcrmPHq8MWi4eC/V7hnbZETMHuWhUoiNdOEfsAXr3iP4KjyyRdwc7a
|
||||
d/xgcK06UVQRL/HbEYGiQL056mc=
|
||||
-----END CERTIFICATE-----
|
19
sample/soap/ssl/files/client.cert
Normal file
19
sample/soap/ssl/files/client.cert
Normal file
|
@ -0,0 +1,19 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIIDKDCCAhCgAwIBAgIBAjANBgkqhkiG9w0BAQUFADA8MQswCQYDVQQGDAJKUDES
|
||||
MBAGA1UECgwJSklOLkdSLkpQMQwwCgYDVQQLDANSUlIxCzAJBgNVBAMMAkNBMB4X
|
||||
DTA0MDEzMTAzMTQ1OFoXDTM1MDEyMzAzMTQ1OFowZTELMAkGA1UEBgwCSlAxEjAQ
|
||||
BgNVBAoMCUpJTi5HUi5KUDEMMAoGA1UECwwDUlJSMRAwDgYDVQQDDAdleGFtcGxl
|
||||
MSIwIAYJKoZIhvcNAQkBDBNleGFtcGxlQGV4YW1wbGUub3JnMIGfMA0GCSqGSIb3
|
||||
DQEBAQUAA4GNADCBiQKBgQDRWssrK8Gyr+500hpLjCGR3+AHL8/hEJM5zKi/MgLW
|
||||
jTkvsgOwbYwXOiNtAbR9y4/ucDq7EY+cMUMHES4uFaPTcOaAV0aZRmk8AgslN1tQ
|
||||
gNS6ew7/Luq3DcVeWkX8PYgR9VG0mD1MPfJ6+IFA5d3vKpdBkBgN4l46jjO0/2Xf
|
||||
ewIDAQABo4GPMIGMMAwGA1UdEwEB/wQCMAAwMQYJYIZIAYb4QgENBCQWIlJ1Ynkv
|
||||
T3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFOFvay0H7lr2
|
||||
xUx6waYEV2bVDYQhMAsGA1UdDwQEAwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYI
|
||||
KwYBBQUHAwQwDQYJKoZIhvcNAQEFBQADggEBABd2dYWqbDIWf5sWFvslezxJv8gI
|
||||
w64KCJBuyJAiDuf+oazr3016kMzAlt97KecLZDusGNagPrq02UX7YMoQFsWJBans
|
||||
cDtHrkM0al5r6/WGexNMgtYbNTYzt/IwodISGBgZ6dsOuhznwms+IBsTNDAvWeLP
|
||||
lt2tOqD8kEmjwMgn0GDRuKjs4EoboA3kMULb1p9akDV9ZESU3eOtpS5/G5J5msLI
|
||||
9WXbYBjcjvkLuJH9VsJhb+R58Vl0ViemvAHhPilSl1SPWVunGhv6FcIkdBEi1k9F
|
||||
e8BNMmsEjFiANiIRvpdLRbiGBt0KrKTndVfsmoKCvY48oCOvnzxtahFxfs8=
|
||||
-----END CERTIFICATE-----
|
15
sample/soap/ssl/files/client.key
Normal file
15
sample/soap/ssl/files/client.key
Normal file
|
@ -0,0 +1,15 @@
|
|||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIICWwIBAAKBgQDRWssrK8Gyr+500hpLjCGR3+AHL8/hEJM5zKi/MgLWjTkvsgOw
|
||||
bYwXOiNtAbR9y4/ucDq7EY+cMUMHES4uFaPTcOaAV0aZRmk8AgslN1tQgNS6ew7/
|
||||
Luq3DcVeWkX8PYgR9VG0mD1MPfJ6+IFA5d3vKpdBkBgN4l46jjO0/2XfewIDAQAB
|
||||
AoGAZcz8llWErtsV3QB9gNb3S/PNADGjqBFjReva8n3jG2k4sZSibpwWTwUaTNtT
|
||||
ZQgjSRKRvH1hk9XwffNAvXAQZNNkuj/16gO2oO45nyLj4dO365ujLptWnVIWDHOE
|
||||
uN0GeiZO+VzcCisT0WCq4tvtLeH8svrxzA8cbXIEyOK7NiECQQDwo2zPFyKAZ/Cu
|
||||
lDJ6zKT+RjfWwW7DgWzirAlTrt4ViMaW+IaDH29TmQpb4V4NuR3Xi+2Xl4oicu6S
|
||||
36TW9+/FAkEA3rgfOQJuLlWSnw1RTGwvnC816a/W7iYYY7B+0U4cDbfWl7IoXT4y
|
||||
M8nV/HESooviZLqBwzAYSoj3fFKYBKpGPwJAUO8GN5iWWA2dW3ooiDiv/X1sZmRk
|
||||
dojfMFWgRW747tEzya8Ivq0h6kH8w+5GjeMG8Gn1nRiwsulo6Ckj7dEx6QJACyui
|
||||
7UIQ8qP6GZ4aYMHgVW4Mvy7Bkeo5OO7GPYs0Xv/EdJFL8vlGnVBXOjUVoS9w6Gpu
|
||||
TbLg1QQvnX2rADjmEwJANxZO2GUkaWGsEif8aGW0x5g/IdaMGG27pTWk5zqix7P3
|
||||
1UDrdo/JOXhptovhRi06EppIxAxYmbh9vd9VN8Itlw==
|
||||
-----END RSA PRIVATE KEY-----
|
19
sample/soap/ssl/files/server.cert
Normal file
19
sample/soap/ssl/files/server.cert
Normal file
|
@ -0,0 +1,19 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIIC/zCCAeegAwIBAgIBATANBgkqhkiG9w0BAQUFADA/MQswCQYDVQQGDAJKUDES
|
||||
MBAGA1UECgwJSklOLkdSLkpQMQwwCgYDVQQLDANSUlIxDjAMBgNVBAMMBVN1YkNB
|
||||
MB4XDTA0MDEzMTAzMTMxNloXDTMzMDEyMzAzMTMxNlowQzELMAkGA1UEBgwCSlAx
|
||||
EjAQBgNVBAoMCUpJTi5HUi5KUDEMMAoGA1UECwwDUlJSMRIwEAYDVQQDDAlsb2Nh
|
||||
bGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANFJTxWqup3nV9dsJAku
|
||||
p+WaXnPNIzcpAA3qMGZDJTJsfa8Du7ZxTP0XJK5mETttBrn711cJxAuP3KjqnW9S
|
||||
vtZ9lY2sXJ6Zj62sN5LwG3VVe25dI28yR1EsbHjJ5Zjf9tmggMC6am52dxuHbt5/
|
||||
vHo4ngJuKE/U+eeGRivMn6gFAgMBAAGjgYUwgYIwDAYDVR0TAQH/BAIwADAxBglg
|
||||
hkgBhvhCAQ0EJBYiUnVieS9PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAd
|
||||
BgNVHQ4EFgQUpZIyygD9JxFYHHOTEuWOLbCKfckwCwYDVR0PBAQDAgWgMBMGA1Ud
|
||||
JQQMMAoGCCsGAQUFBwMBMA0GCSqGSIb3DQEBBQUAA4IBAQBwAIj5SaBHaA5X31IP
|
||||
CFCJiep96awfp7RANO0cuUj+ZpGoFn9d6FXY0g+Eg5wAkCNIzZU5NHN9xsdOpnUo
|
||||
zIBbyTfQEPrge1CMWMvL6uGaoEXytq84VTitF/xBTky4KtTn6+es4/e7jrrzeUXQ
|
||||
RC46gkHObmDT91RkOEGjHLyld2328jo3DIN/VTHIryDeVHDWjY5dENwpwdkhhm60
|
||||
DR9IrNBbXWEe9emtguNXeN0iu1ux0lG1Hc6pWGQxMlRKNvGh0yZB9u5EVe38tOV0
|
||||
jQaoNyL7qzcQoXD3Dmbi1p0iRmg/+HngISsz8K7k7MBNVsSclztwgCzTZOBiVtkM
|
||||
rRlQ
|
||||
-----END CERTIFICATE-----
|
15
sample/soap/ssl/files/server.key
Normal file
15
sample/soap/ssl/files/server.key
Normal file
|
@ -0,0 +1,15 @@
|
|||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIICXQIBAAKBgQDRSU8Vqrqd51fXbCQJLqflml5zzSM3KQAN6jBmQyUybH2vA7u2
|
||||
cUz9FySuZhE7bQa5+9dXCcQLj9yo6p1vUr7WfZWNrFyemY+trDeS8Bt1VXtuXSNv
|
||||
MkdRLGx4yeWY3/bZoIDAumpudncbh27ef7x6OJ4CbihP1PnnhkYrzJ+oBQIDAQAB
|
||||
AoGBAIf4CstW2ltQO7+XYGoex7Hh8s9lTSW/G2vu5Hbr1LTHy3fzAvdq8MvVR12O
|
||||
rk9fa+lU9vhzPc0NMB0GIDZ9GcHuhW5hD1Wg9OSCbTOkZDoH3CAFqonjh4Qfwv5W
|
||||
IPAFn9KHukdqGXkwEMdErsUaPTy9A1V/aROVEaAY+HJgq/eZAkEA/BP1QMV04WEZ
|
||||
Oynzz7/lLizJGGxp2AOvEVtqMoycA/Qk+zdKP8ufE0wbmCE3Qd6GoynavsHb6aGK
|
||||
gQobb8zDZwJBANSK6MrXlrZTtEaeZuyOB4mAmRzGzOUVkUyULUjEx2GDT93ujAma
|
||||
qm/2d3E+wXAkNSeRpjUmlQXy/2oSqnGvYbMCQQDRM+cYyEcGPUVpWpnj0shrF/QU
|
||||
9vSot/X1G775EMTyaw6+BtbyNxVgOIu2J+rqGbn3c+b85XqTXOPL0A2RLYkFAkAm
|
||||
syhSDtE9X55aoWsCNZY/vi+i4rvaFoQ/WleogVQAeGVpdo7/DK9t9YWoFBIqth0L
|
||||
mGSYFu9ZhvZkvQNV8eYrAkBJ+rOIaLDsmbrgkeDruH+B/9yrm4McDtQ/rgnOGYnH
|
||||
LjLpLLOrgUxqpzLWe++EwSLwK2//dHO+SPsQJ4xsyQJy
|
||||
-----END RSA PRIVATE KEY-----
|
5
sample/soap/ssl/files/sslclient.properties
Normal file
5
sample/soap/ssl/files/sslclient.properties
Normal file
|
@ -0,0 +1,5 @@
|
|||
# verify server's certificate
|
||||
protocol.http.ssl_config.verify_mode = OpenSSL::SSL::VERIFY_PEER
|
||||
# certificates for verification
|
||||
protocol.http.ssl_config.ca_file = files/ca.cert
|
||||
protocol.http.ssl_config.ca_file = files/subca.cert
|
|
@ -0,0 +1,2 @@
|
|||
# no verify server's certificate
|
||||
protocol.http.ssl_config.verify_mode =
|
|
@ -0,0 +1,9 @@
|
|||
# verify server's certificate
|
||||
protocol.http.ssl_config.verify_mode = OpenSSL::SSL::VERIFY_PEER
|
||||
# certificates for verification
|
||||
protocol.http.ssl_config.ca_file = files/ca.cert
|
||||
protocol.http.ssl_config.ca_file = files/subca.cert
|
||||
|
||||
# key and certificate for client identity
|
||||
protocol.http.ssl_config.client_cert = files/client.cert
|
||||
protocol.http.ssl_config.client_key = files/client.key
|
21
sample/soap/ssl/files/subca.cert
Normal file
21
sample/soap/ssl/files/subca.cert
Normal file
|
@ -0,0 +1,21 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIIDaDCCAlCgAwIBAgIBATANBgkqhkiG9w0BAQUFADA8MQswCQYDVQQGDAJKUDES
|
||||
MBAGA1UECgwJSklOLkdSLkpQMQwwCgYDVQQLDANSUlIxCzAJBgNVBAMMAkNBMB4X
|
||||
DTA0MDEzMDAwNDMyN1oXDTM1MDEyMjAwNDMyN1owPzELMAkGA1UEBgwCSlAxEjAQ
|
||||
BgNVBAoMCUpJTi5HUi5KUDEMMAoGA1UECwwDUlJSMQ4wDAYDVQQDDAVTdWJDQTCC
|
||||
ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ0Ou7AyRcRXnB/kVHv/6kwe
|
||||
ANzgg/DyJfsAUqW90m7Lu1nqyug8gK0RBd77yU0w5HOAMHTVSdpjZK0g2sgx4Mb1
|
||||
d/213eL9TTl5MRVEChTvQr8q5DVG/8fxPPE7fMI8eOAzd98/NOAChk+80r4Sx7fC
|
||||
kGVEE1bKwY1MrUsUNjOY2d6t3M4HHV3HX1V8ShuKfsHxgCmLzdI8U+5CnQedFgkm
|
||||
3e+8tr8IX5RR1wA1Ifw9VadF7OdI/bGMzog/Q8XCLf+WPFjnK7Gcx6JFtzF6Gi4x
|
||||
4dp1Xl45JYiVvi9zQ132wu8A1pDHhiNgQviyzbP+UjcB/tsOpzBQF8abYzgEkWEC
|
||||
AwEAAaNyMHAwDwYDVR0TAQH/BAUwAwEB/zAxBglghkgBhvhCAQ0EJBYiUnVieS9P
|
||||
cGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUlCjXWLsReYzH
|
||||
LzsxwVnCXmKoB/owCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQCJ/OyN
|
||||
rT8Cq2Y+G2yA/L1EMRvvxwFBqxavqaqHl/6rwsIBFlB3zbqGA/0oec6MAVnYynq4
|
||||
c4AcHTjx3bQ/S4r2sNTZq0DH4SYbQzIobx/YW8PjQUJt8KQdKMcwwi7arHP7A/Ha
|
||||
LKu8eIC2nsUBnP4NhkYSGhbmpJK+PFD0FVtD0ZIRlY/wsnaZNjWWcnWF1/FNuQ4H
|
||||
ySjIblqVQkPuzebv3Ror6ZnVDukn96Mg7kP4u6zgxOeqlJGRe1M949SS9Vudjl8X
|
||||
SF4aZUUB9pQGhsqQJVqaz2OlhGOp9D0q54xko/rekjAIcuDjl1mdX4F2WRrzpUmZ
|
||||
uY/bPeOBYiVsOYVe
|
||||
-----END CERTIFICATE-----
|
12
sample/soap/ssl/sslclient.rb
Normal file
12
sample/soap/ssl/sslclient.rb
Normal file
|
@ -0,0 +1,12 @@
|
|||
require 'http-access2'
|
||||
require 'soap/rpc/driver'
|
||||
|
||||
# setup driver
|
||||
url = "https://localhost:17443/"
|
||||
client = SOAP::RPC::Driver.new(url, 'urn:sslhelloworld')
|
||||
client.add_method("hello_world", "from")
|
||||
# load SSL properties
|
||||
client.loadproperty('files/sslclient.properties')
|
||||
|
||||
# SOAP over SSL
|
||||
p client.hello_world(__FILE__)
|
12
sample/soap/ssl/sslclient_require_noserverauth.rb
Normal file
12
sample/soap/ssl/sslclient_require_noserverauth.rb
Normal file
|
@ -0,0 +1,12 @@
|
|||
require 'http-access2'
|
||||
require 'soap/rpc/driver'
|
||||
|
||||
# setup driver
|
||||
url = "https://localhost:17443/"
|
||||
client = SOAP::RPC::Driver.new(url, 'urn:sslhelloworld')
|
||||
client.add_method("hello_world", "from")
|
||||
# load SSL properties
|
||||
client.loadproperty('files/sslclient_require_noserverauth.properties')
|
||||
|
||||
# SOAP over SSL
|
||||
p client.hello_world(__FILE__)
|
12
sample/soap/ssl/sslclient_with_clientauth.rb
Normal file
12
sample/soap/ssl/sslclient_with_clientauth.rb
Normal file
|
@ -0,0 +1,12 @@
|
|||
require 'http-access2'
|
||||
require 'soap/rpc/driver'
|
||||
|
||||
# setup driver
|
||||
url = "https://localhost:17443/"
|
||||
client = SOAP::RPC::Driver.new(url, 'urn:sslhelloworld')
|
||||
client.add_method("hello_world", "from")
|
||||
# load SSL properties
|
||||
client.loadproperty('files/sslclient_with_clientauth.properties')
|
||||
|
||||
# SOAP over SSL
|
||||
p client.hello_world(__FILE__)
|
49
sample/soap/ssl/sslserver.rb
Normal file
49
sample/soap/ssl/sslserver.rb
Normal file
|
@ -0,0 +1,49 @@
|
|||
require 'soap/rpc/httpserver'
|
||||
require 'webrick/https'
|
||||
require 'logger'
|
||||
|
||||
class HelloWorldServer < SOAP::RPC::HTTPServer
|
||||
private
|
||||
|
||||
def on_init
|
||||
@default_namespace = 'urn:sslhelloworld'
|
||||
add_method(self, 'hello_world', 'from')
|
||||
end
|
||||
|
||||
def hello_world(from)
|
||||
"Hello World, from #{ from }"
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
if $0 == __FILE__
|
||||
DIR = File.dirname(File.expand_path(__FILE__))
|
||||
|
||||
def cert(filename)
|
||||
OpenSSL::X509::Certificate.new(File.open(File.join(DIR, filename)) { |f|
|
||||
f.read
|
||||
})
|
||||
end
|
||||
|
||||
def key(filename)
|
||||
OpenSSL::PKey::RSA.new(File.open(File.join(DIR, filename)) { |f|
|
||||
f.read
|
||||
})
|
||||
end
|
||||
|
||||
$server = HelloWorldServer.new(
|
||||
:BindAddress => "0.0.0.0",
|
||||
:Port => 17443,
|
||||
:AccessLog => [],
|
||||
:SSLEnable => true,
|
||||
:SSLCACertificateFile => File.join(DIR, 'files/ca.cert'),
|
||||
:SSLCertificate => cert('files/server.cert'),
|
||||
:SSLPrivateKey => key('files/server.key'),
|
||||
:SSLVerifyClient => nil,
|
||||
:SSLCertName => nil
|
||||
)
|
||||
trap(:INT) do
|
||||
$server.shutdown
|
||||
end
|
||||
$server.start
|
||||
end
|
45
sample/soap/ssl/sslserver_noauth.rb
Normal file
45
sample/soap/ssl/sslserver_noauth.rb
Normal file
|
@ -0,0 +1,45 @@
|
|||
require 'soap/rpc/httpserver'
|
||||
require 'webrick/https'
|
||||
require 'logger'
|
||||
|
||||
class HelloWorldServer < SOAP::RPC::HTTPServer
|
||||
private
|
||||
|
||||
def on_init
|
||||
@default_namespace = 'urn:sslhelloworld'
|
||||
add_method(self, 'hello_world', 'from')
|
||||
end
|
||||
|
||||
def hello_world(from)
|
||||
"Hello World, from #{ from }"
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
if $0 == __FILE__
|
||||
DIR = File.dirname(File.expand_path(__FILE__))
|
||||
|
||||
def cert(filename)
|
||||
OpenSSL::X509::Certificate.new(File.open(File.join(DIR, filename)) { |f|
|
||||
f.read
|
||||
})
|
||||
end
|
||||
|
||||
def key(filename)
|
||||
OpenSSL::PKey::RSA.new(File.open(File.join(DIR, filename)) { |f|
|
||||
f.read
|
||||
})
|
||||
end
|
||||
|
||||
$server = HelloWorldServer.new(
|
||||
:BindAddress => "0.0.0.0",
|
||||
:Port => 17443,
|
||||
:AccessLog => [],
|
||||
:SSLEnable => true,
|
||||
:SSLCertName => [['OU', 'example'], ['CN', 'localhost']] # creates dummy certificate
|
||||
)
|
||||
trap(:INT) do
|
||||
$server.shutdown
|
||||
end
|
||||
$server.start
|
||||
end
|
50
sample/soap/ssl/sslserver_require_clientauth.rb
Normal file
50
sample/soap/ssl/sslserver_require_clientauth.rb
Normal file
|
@ -0,0 +1,50 @@
|
|||
require 'soap/rpc/httpserver'
|
||||
require 'webrick/https'
|
||||
require 'logger'
|
||||
|
||||
class HelloWorldServer < SOAP::RPC::HTTPServer
|
||||
private
|
||||
|
||||
def on_init
|
||||
@default_namespace = 'urn:sslhelloworld'
|
||||
add_method(self, 'hello_world', 'from')
|
||||
end
|
||||
|
||||
def hello_world(from)
|
||||
"Hello World, from #{ from }"
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
if $0 == __FILE__
|
||||
DIR = File.dirname(File.expand_path(__FILE__))
|
||||
|
||||
def cert(filename)
|
||||
OpenSSL::X509::Certificate.new(File.open(File.join(DIR, filename)) { |f|
|
||||
f.read
|
||||
})
|
||||
end
|
||||
|
||||
def key(filename)
|
||||
OpenSSL::PKey::RSA.new(File.open(File.join(DIR, filename)) { |f|
|
||||
f.read
|
||||
})
|
||||
end
|
||||
|
||||
$server = HelloWorldServer.new(
|
||||
:BindAddress => "0.0.0.0",
|
||||
:Port => 17443,
|
||||
:AccessLog => [],
|
||||
:SSLEnable => true,
|
||||
:SSLCACertificateFile => File.join(DIR, 'files/ca.cert'),
|
||||
:SSLCertificate => cert('files/server.cert'),
|
||||
:SSLPrivateKey => key('files/server.key'),
|
||||
:SSLVerifyClient =>
|
||||
OpenSSL::SSL::VERIFY_FAIL_IF_NO_PEER_CERT|OpenSSL::SSL::VERIFY_PEER,
|
||||
:SSLClientCA => cert('files/ca.cert')
|
||||
)
|
||||
trap(:INT) do
|
||||
$server.shutdown
|
||||
end
|
||||
$server.start
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue